web-dev-qa-db-ja.com

$ _GETで設定したパラメータでWordpressの 'Add New Post'管理ページを開く

使用している自動化ツールからWebブラウザを起動し、管理領域で特定のタイトルとコンテンツを含むWordpressの "Add Nwe Post"ページを開きます(毎回異なりますが、ローカルコンピュータ上で動的に生成されます)。

私は http://blog.mysite.com/wp-admin/post-new.php?post_title=sometitle を使用できることを知っています

これで結構です。ただし、 "content" URLパラメータを使用して投稿のコンテンツを設定しようとすると、プレーンテキストにしかなりません。 HTMLを設定した場合は自動的にエスケープされます。記事のHTMLコンテンツを設定する方法はありますか?

また、URLパラメータでページカテゴリを設定する方法もわかりません。

P.S .:プログラムで新しい投稿を作成するのではなく、事前に入力されたフィールドで[投稿の追加]ページを開くようにします。

2
riot_starter

問題は$contentがWordPressの予約変数なので、別の名前を使わなければならないということです。ここでは$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