bbPressとRA – New Post Auto Set Status “Private”の共存方法

bbPressはWordPressで掲示板を運用するための定番プラグインである。

RA – New Post Auto Set Status “Private”はWordPressで記事新規作成時にいきなり公開されず、とりあえず非公開にするためのプラグインである。

WordPressの記事作成時、いきなり公開ではなく、とりあえず非公開で保存できるようにする方法 : RA – New Post Auto Set Status “Private”
WordPressで新規に投稿や固定ページを作成し「公開」ボタンをクリックすると、公開状態は「公開」になる。つまりいきなり全世界に記事が公開されてしまう。途中まで書いてとりあえず保存ということができない。これはパソコンでの通常の文書作成...

両者を併存させた場合、bbPressの掲示板で返信をした場合、この返信が「非公開」になってしまい掲示板が正しく動作しなくなる。

この問題を回避するためには、RA – New Post Auto Set Status “Private”のソースコードに以下の修正を加えればよい。

function ra_post_status_auto_private() {
// フォーラムでは何もしない
  if(get_post_type() == 'forum' OR get_post_type() == 'topic' OR get_post_type() == 'reply') {
    return;
  }else{
    global $post, $wpdb;
    $wpdb->update($wpdb->posts, array('post_status' => 'private'), array('ID' => $post->ID));
    clean_post_cache($post->ID);
  } 
}
add_action('new_to_publish', 'ra_post_status_auto_private');
add_action('draft_to_publish', 'ra_post_status_auto_private');
add_action('auto-draft_to_publish', 'ra_post_status_auto_private');

直接、プラグインのファイルを修正してもよいが、RA – New Post Auto Set Status “Private”を使用せずに上記のソースを「functions.php」などにそのままコピペしてもOK。その場合、掲示板は通常通り動作し、投稿や固定ページでは新規作成時の公開ステータスが非公開となる。

コメント