Rellene previamente los campos con contenido externo cuando cree una nueva publicación

2

Me gustaría encontrar una forma de rellenar algunos de los campos de la página /wp-admin/post-new.php desde una fuente externa.

Funciona para el título: cargar /wp-admin/post-new.php?post_title=title1 llena la entrada del título con title1 .

Tienes la idea, lo que sería genial es algo como /wp-admin/post-new.php?post_title=title1&content=content1&tags=tag1,tag2&cat=cat1,cat2 ... de modo que cuando llegue a post-new.php con la mayoría de los campos ya rellenados desde un script externo.

También tendría que rellenar campos personalizados.

¿Cómo puedo hacer eso? ¿Cuál es la mejor opción? ¿Un script externo completo que se conecta a la base de mi mismo y ejecuta consultas de inserción? Un plugin? Si es así, ¿tienes alguna sugerencia?

    
pregunta Jan Fabry 06.02.2011 - 00:03

3 respuestas

10

Una publicación vacía es creada por get_default_post_to_edit() . Esta función lee los valores post_title , content y excerpt en la matriz $_REQUEST , y también los filtra a través de default_title , default_content y default_excerpt .

De forma predeterminada, esta función solo devuelve un objeto "falso" $post , pero si el parámetro $create_in_db se establece en true , en realidad se guarda en la base de datos con el post_status establecido en auto-draft .

Este parámetro está configurado en post-new.php , lo que significa que puedes enlazar en wp_insert_post y guardar cosas adicionales, como etiquetas, desde la matriz $_REQUEST o desde una fuente externa. Un ejemplo muy simple:

add_action( 'load-post-new.php', 'wpse8650_post_new' );
function wpse8650_post_new()
{
    add_action( 'wp_insert_post', 'wpse8650_wp_insert_post_default' );
}

function wpse8650_wp_insert_post_default( $post_id )
{
    add_post_meta( $post_id, 'wpse8650_meta_key', $_REQUEST['meta_value'] );
    wp_set_post_tags( $post_id, $_REQUEST['tags']) );
}

Esto funciona porque los campos personalizados y las etiquetas de publicación se vuelven a leer desde la base de datos (o la memoria caché) al crear la página, y lo hacemos antes de que se muestren estos metaboxes.

    
respondido por el Jan Fabry 12.02.2011 - 14:28
3

Si esto es para agregar usuarios finales, tal vez lo más fácil es crear un script jQuery para asignar los valores. Aquí es cómo analizar la URL:

Y aquí es cómo agregar Javascript en WordPress:

Finalmente, solo vea la fuente en la pantalla de edición de WordPress para ver los nombres de los campos de entrada y luego esto muestra cómo usar jQuery para asignar valores:

respondido por el MikeSchinkel 06.02.2011 - 00:23
0

Además de la respuesta de Mike, también puede usar el servidor XML-RPC de WordPress para realizar publicaciones externas. Depende de lo que estés tratando de hacer.

    
respondido por el Zack 06.02.2011 - 05:46

Lea otras preguntas en las etiquetas