Je voudrais trouver un moyen de remplir certains des champs de la page /wp-admin/post-new.php
à partir d'une source externe.
Cela fonctionne pour le titre: loading /wp-admin/post-new.php?post_title=title1
remplit la saisie de titre avec title1
.
Vous avez l’idée, ce qui serait génial est quelque chose comme /wp-admin/post-new.php?post_title=title1&content=content1&tags=tag1,tag2&cat=cat1,cat2
... afin que lorsque j’arrive sur le post-new.php
avec la plupart des champs déjà remplis à partir d’un script externe.
J'aurais aussi besoin de remplir des champs personnalisés.
Comment puis je faire ça? Quelle est la meilleure option? Un script externe complet qui se connecte à la base moi-même et exécute des requêtes d'insertion? Un plugin? Si oui, avez-vous des suggestions?
Un article vide est créé par get_default_post_to_edit()
. Cette fonction lit les valeurs post_title
, content
et excerpt
dans le tableau $_REQUEST
et les filtre également à travers default_title
, default_content
et default_excerpt
.
Par défaut, cette fonction renvoie uniquement un "faux" objet $post
, mais si le paramètre $create_in_db
est défini sur true
, il est réellement enregistré dans la base de données avec post_status
défini sur auto-draft
.
Ce paramètre est défini dans post-new.php
, ce qui signifie que vous pouvez vous connecter à wp_insert_post
et enregistrer des éléments supplémentaires, tels que des balises, à partir du tableau $_REQUEST
ou d'une source externe. Un exemple très 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']) );
}
Cela fonctionne car les champs personnalisés et les balises de publication sont lus à nouveau à partir de la base de données (ou du cache) lors de la construction de la page, et nous le faisons avant l'affichage de ces métaboxes.
S'il s'agit d'ajouter des utilisateurs finaux, le plus simple est peut-être de créer un script jQuery pour attribuer les valeurs. Voici comment analyser l'URL:
Et voici comment ajouter du Javascript dans WordPress:
Enfin, il suffit de visualiser la source dans l’écran de modification WordPress pour voir les noms des champs de saisie, puis la procédure ci-dessous montre comment utiliser jQuery pour attribuer des valeurs:
En plus de la réponse de Mike, vous pouvez également utiliser le serveur XML-RPC de WordPress pour effectuer des publications externes. Cela dépend de ce que vous essayez de faire.