XML-RPC: Adicionar categoria para publicar dados

4

Eu tenho um serviço que coloca uma postagem diária no meu blog via XML-RPC. Ele não me oferece nenhum controle sobre em qual categoria ele entra, por isso quero apenas adicionar um filtro / gancho para adicionar a categoria desejada nos dados de postagem recebidos:

add_action ('xmlrpc_call', 'check_xmlrpc_call' );

function check_xmlrpc_call( $method )
{
    if( 'wp.newPost' === $method )
    {
        add_filter( 'xmlrpc_wp_insert_post_data', 'add_xmlrpc_category_post_data' );
    }
}

function add_xmlrpc_category_post_data( $post_data )
{
    //not sure how to add category to the post data :(

    return $post_data;  
}    

Acho que algo assim no meu functions.php funcionaria? Só não tenho certeza do formato correto para adicionar uma categoria aos dados do post?

Talvez isso?

$post_data['terms'] = array('category' => array(207))
    
por user57040 11.12.2014 / 14:59

1 resposta

1

Atribuindo postagens a termos de taxonomia no XML-RPC:

Vamos supor que sua configuração seja:

                                     xml-rpc
                                    wp.newPost
                  (sender) site A -------------> site B (receiver)

e você deseja atribuir as novas postagens a um determinado termo de taxonomia no site B .

Do site B:

Então você pode tentar o seguinte, no site B :

$post_data['tax_input'] = array( 'category' => array( 207 ) );

em que a category taxonomy com id 207 já existe no site B .

Também é possível usar os outros parâmetros suportados de wp_insert_post() , como post_category ou tags_input . No seu caso, você também pode usar:

$post_data['post_category'] = array( 207 );

Do site A:

Observe que os parâmetros terms e terms_names são suportados pela carga útil da consulta wp.newPost , do sending site A .

Veja um exemplo para o site A , como é possível adicionar termos de uma determinada taxonomia:

$result = $client->query( 
    'wp.newPost', 
    array(
        $blog_id,
        $user,
        $password,
        array(
            'post_status'  => 'draft',
            'post_title'   => 'Test',
            'post_content' => 'We are testing XML-RPC!',
            'terms_names'  => array( 
                'post_tag' => array( 'xml-rpc' ), 
                'category' => array( 'wordpress-testing' ),
            ),
        )
    )
);
    
por birgire 11.12.2014 / 15:48

Tags