0

カスタム投稿タイプがあり、[公開]ボタンをクリックしたときに投稿ステータスが[公開済み]に設定されないようにする必要があります。代わりに、[ドラフトを保存]ボタンのように機能するはずです。したがって、[公開]ボタンを削除して、ユーザーが[下書きを保存]をクリックするだけで済むようにする方法を理解する必要があります。できれば、[公開]ボタンの機能を更新して、投稿が公開に設定されないようにします。

4

5 に答える 5

3

WordPress のアクション フックを使用して、デフォルトの動作を変更できます。 http://codex.wordpress.org/Function_Reference/add_action

あなたの場合、「publish_post」フックを使用したいと考えています。

だからあなたはすることができます

function dont_publish( $post_ID )  
{
     if(get_post_type($post_ID) == 'your_custom_type'){
         exit;
     }
}
//the dont_publish function will be called after the publish button is clicked
add_action( 'publish_post', 'dont_publish' );

上記のように、公開ボタンをクリックしても何も起こりませんが、dont_publish 関数をいじって、必要な結果を得ることができます。

于 2013-02-16T19:58:35.103 に答える
2

@ PhoenixWing156は近かったのですが、少し変更があったため、他の投稿タイプは通常どおり更新されます。

function dont_publish( $data , $postarr ) {  
  if($data['post_type'] == 'custom_post_type') {
    $data['post_status'] = 'draft';   
  }
  return $data;   
}  

add_filter('wp_insert_post_data' , 'dont_publish' , '99', 2); 
于 2013-02-17T22:56:08.553 に答える
1

wp_insert_post_data フックは、投稿に関する情報がデータベースに保存される前に呼び出されます。 http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_insert_post_data 以下を試すことができます:

function dont_publish( $data , $postarr )  
{  
  if($data['post_type'] == 'custom_post_type'){
      $data['post_status'] = 'draft';  
      return $data;
  }     
}  

add_filter('wp_insert_post_data' , 'dont_publish' , '99', 2);  
于 2013-02-16T21:52:28.033 に答える