XML-RPC: Agregar categoría a la publicación de datos

4

Tengo un servicio que pone una publicación diaria en mi blog a través de XML-RPC. No me ofrece ningún control de la categoría en la que ingresa, por lo que solo quiero agregar un filtro / gancho para agregar la categoría que quiero a los datos de entrada entrantes:

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;  
}    

Creo que algo como esto en mi functions.php funcionaría? ¿No estoy seguro de cuál es el formato correcto para agregar una categoría a los datos de la publicación?

Tal vez esto?

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

1 respuesta

1

Asignación de publicaciones a términos de taxonomía en XML-RPC:

Supongamos que tu configuración es:

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

y desea asignar las nuevas publicaciones a los términos de una determinada taxonomía en el sitio B .

Desde el sitio B:

Luego puedes probar lo siguiente, en el sitio de recepción B :

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

donde ya existe la taxonomía category con id 207 en el sitio B .

También es posible usar otros parámetros compatibles de wp_insert_post() , como post_category o tags_input . En su caso, por lo tanto, también podría utilizar:

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

Desde el sitio A:

Observe que los parámetros terms y terms_names son compatibles con la carga útil de la consulta wp.newPost , desde el sitio sending A .

Aquí hay un ejemplo para el sitio A , cómo se podrían agregar los términos de una taxonomía determinada:

$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' ),
            ),
        )
    )
);
    
respondido por el birgire 11.12.2014 - 15:48

Lea otras preguntas en las etiquetas