web-dev-qa-db-fra.com

Ouvrez la page d'administration 'Add New Post' de Wordpress avec les paramètres définis via $ _GET

Je souhaite lancer mon navigateur Web à partir d'un outil d'automatisation que j'utilise et ouvrir la page "Ajouter un post" dans Wordpress dans la zone d'administration avec un titre et un contenu spécifiques (cela varie à chaque fois, je le génère de manière dynamique sur ma machine locale).

Je sais que je peux utiliser http://blog.mysite.com/wp-admin/post-new.php?post_title=sometitle

C'est bon. Toutefois, si j'essaie de définir le contenu de l'article en utilisant le paramètre "contenu" de l'URL, il ne peut s'agir que de texte brut. Si je configure HTML, il est automatiquement échappé. Existe-t-il un moyen de définir le contenu HTML de la publication?

De plus, je ne sais pas comment définir des catégories de pages via les paramètres d'URL?

P.S .: Je ne veux pas créer un nouveau message par programme, mais simplement pour que la page Ajouter un message s'ouvre avec des champs préremplis.

2
riot_starter

Le problème est que $content est une variable réservée dans WordPress, vous devez utiliser un autre nom. Ici, j'ai utilisé $pre_content:

enter image description here

<?php
/**
 * Plugin Name: T5 Editor content by request
 * Description: Default text for post content from GET variable <code>pre_content</code>.
 * Author:      Thomas Scholz
 * Author URI:  http://toscho.de
 * Version:     2012.06.30
 */

/*
 * See wp-admin/includes/post.php function get_default_post_to_edit()
 * There are also the filters 'default_title' and 'default_excerpt'
 */
add_filter( 'default_content', 't5_content_by_request', 10, 2 );

/**
 * Fills the default content for post type 'post' if it is not empty.
 *
 * @param string $content
 * @param object $post
 * @return string
 */
function t5_content_by_request( $content, $post )
{
    if ( ! empty ( $_GET['pre_content'] )
        and current_user_can( 'edit_post', $post->ID )
        and '' === $content
    )
    {
        return $_GET['pre_content'];
    }

    return $content;
}
1
fuxia