外部ソースからの/wp-admin/post-new.php
ページからいくつかのフィールドを埋める方法を見つけたいです。
これはタイトルに対して機能します:/wp-admin/post-new.php?post_title=title1
をロードすると、タイトル入力がtitle1
で埋められます。
あなたがアイデアを得る、素晴らしいことは/wp-admin/post-new.php?post_title=title1&content=content1&tags=tag1,tag2&cat=cat1,cat2
...のようなものであるので、私はほとんどのフィールドがすでに外部のスクリプトから埋められている状態でpost-new.php
に到達したとき。
カスタムフィールドにも記入する必要があります。
どうやってやるの?最良の選択肢は何ですか?自分自身をベースに接続して挿入クエリを実行する完全な外部スクリプト?プラグイン?もしそうなら、あなたはいくつかの提案がありますか?
空の投稿は get_default_post_to_edit()
によって作成されます。この関数は、post_title
配列内の$_REQUEST
、content
、およびexcerpt
の値を読み取り、さらにそれらをdefault_title
、default_content
およびdefault_excerpt
を介してフィルタリングします。
デフォルトでは、この関数は "偽の" $post
オブジェクトのみを返しますが、$create_in_db
パラメータがtrue
に設定されている場合、実際にはpost_status
をauto-draft
に設定してデータベースに保存されます。
このパラメータはpost-new.php
で設定されます。これはwp_insert_post
にフックして$_REQUEST
配列または外部ソースからタグのような追加のものを保存できることを意味します。非常に簡単な例:
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']) );
}
これは、カスタムフィールドとpostタグがページを構築するときにデータベース(またはキャッシュ)から再度読み取られるために機能します。これらのメタボックスが表示される前にこれを実行します。
これがエンドユーザーを追加するのであれば、おそらく最も簡単なことは値を割り当てるjQueryスクリプトを作成することです。 URLを解析する方法は次のとおりです。
そして、WordPressにJavascriptを追加する方法は次のとおりです。
最後に、WordPress編集画面でソースを表示して入力フィールドの名前を確認します。次に、jQueryを使用して値を割り当てる方法を示します。
Mikeの答えに加えて、WordPressのXML-RPCサーバーを使って外部投稿をすることもできます。それはあなたがやろうとしていることによります。