2016-10-25 17 views
0

タイトルが「Test Post」の投稿がまだ存在しない場合にのみ作成します。何らかの理由で、私はプラグインを有効にすると常に投稿を作成します。投稿が作成された後でも、get_page_by_title('Test Post')は常に偽です。誰かが理由を説明できますか?WordPress条件付き投稿作成

<?php 
/* Plugin Name: Create Test Post */ 


function create_post(){ 

    if(get_page_by_title('Test Post')){ 
     return; 
    } 

    $my_post = array(
     'post_title' => 'Test Post', 
     'post_content' => 'This is a test post', 
     'post_status' => 'publish' 
    ); 

    wp_insert_post($my_post); 

} // end create_post 

register_activation_hook(__FILE__, create_post); 

答えて

0

get_page_by_title()関数は、ポストタイプの引数を設定しないポストではなくページでのみ使用できます。

これは、その関数に適切な引数を設定します。 '投稿'が動作しない場合は、 '投稿'を使用してみてください。

この機能の詳細は、ここにあります。 https://developer.wordpress.org/reference/functions/get_page_by_title/

function create_post(){ 

$prev_post = get_page_by_title('Test Post', 'OBJECT', 'post'); 

if ($prev_post != NULL) { 
$prev_post_status = get_post_status($prev_post->ID); 
} 

if (!isset($prev_post_status) || !in_array($prev_post_status, array('trash', 'published'))) { 

$my_post = array(
    'post_title' => 'Test Post', 
    'post_content' => 'This is a test post', 
    'post_status' => 'publish' 
); 

wp_insert_post($my_post); 

} 

} // end create_post 

register_activation_hook(__FILE__, create_post); 
+0

これはポストは、ビン内に存在する場合、それはこのアプローチにより、既存としてカウントを除いて、動作しているようです。そのような行動を防止する方法はありますか? – Robin

+0

はい、私はそれを調理させてください、病気あなたのためにまもなく編集しています。 –

+0

サイズを試してみてください。 –

関連する問題