ダッシュボードを介してユーザーが作成または更新した各Wordpress投稿用の投稿(またはページ)をプログラムで作成する必要があります。私は、自動投稿は、ユーザーが作成したり、特定のカテゴリ内の記事を更新し、自動投稿は、別のカテゴリで作成された場合にのみ作成されたフックは、プログラムでWordpressに子投稿を挿入します
add_action('publish_post', 'create_details_page');
を追加しました。各投稿はただ1つのカテゴリに属します。
$auto_post = array(
'comment_status' => 'closed',
'post_category' => array($category->term_id),
'post_author' => $latest_post[0]->post_author,
'post_type' => 'post',
'post_title' => 'Details for ' . $latest_post[0]->post_title,
'post_parent' => $latest_post[0]->ID,
'post_content' => 'Post content'
);
$auto_post_id = wp_insert_post ($auto_post, true);
$details = get_post($auto_post_id);
wp_publish_post($auto_post_id);
結果が矛盾している:時々私は1件の自動投稿が作成され得る、時には2、そして時折なしを次のようにポストを作成します 。なぜ、正確に1回だけ投稿を挿入するのですか?
は、ユーザーが作成したポストの子として自動投稿を取得するには:$args = array(
'post_type' => 'post',
'post_parent' => $parent_post_id,
'post_status' => 'publish'
/* 'category_name' => array('Auto Post Category') */
);
$children = get_posts($args);
CATEGORY_NAMEパラメータを追加するには、まったくの子の記事を取得しないようになります。 categoryパラメータがなければ、子投稿が返され、カテゴリ設定プロパティがあります。しかし、完全なリストは検索されないようで、結果は実行ごとに異なります。
自動投稿の内容をダッシュボードから編集した場合、この編集された投稿は上記のクエリによって返されません。どうして?
一貫性のない動作を解決してこれを取得する方法に関する提案はありますか? 私はWordpressを初めて使用しており、オンラインヘルプは疎であり、主にダッシュボードユーザーを対象としています。
Wordpress 3.0.4、php5を使用しています。
私は 'wp_insert_post'を問題なく使用しました。私の実装では、私はWP Errorオブジェクトを返さず、 'date( 'Ymd H:i:s')を使って' post_status'を 'publish'(' wp_publish_post'を避けて)と 'post_date'を明示的に設定しています'。これらが役に立たないとすれば、 '$ auto_post_id'を印刷しようとしましたか? – polarblau
この方法で印刷する方法は正確にはわかりません。私は$ auto_post_idが妥当な数値を返すことを知っています:get_post($ auto_post_id)は投稿を取得できます。 – jprusakova
これの背後にある理由は何ですか?私たちが取り組むことができるより簡単な解決法があるのだろうか? –