情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

Batch Cat で下書き(draft)を対象外にする方法

Batch Cat (2) WordPress (76)

WordPressでカテゴリ分けを効率よくするために、WordPressプラグイン「Batch Cat」を使っているのですが、下書き記事まで分類対象になってしまい、邪魔に感じていました。そこで、Batch Cat のコードを少しだけ編集して、公開状態の記事のみが対象になるように変更しました。そのときの変更内容をメモしておきます。ただ、Batch Catはもう2年も更新されていないプラグインなので、アップデートで上書きされて変更が消えてしまう問題は今後起こらない気がします。

変更箇所

Batch Catのコードを見ると、batch-cat/admin.phpに、bcat_build_query_stringという、投稿を一覧表示するためのクエリ文字列(WP_Query用)を構築している関数があります。

ここに、draftを除外(公開済みだけに)するコードを追加します。

変更内容

$querystrに、クエリを連結しているので、そこに「post_status=publish」を追加して、以下のようにしました。

function bcat_build_query_string()
{
    $options = get_option('bcat_options');

    $querystr = 'post_type=post';
    $querystr .= '&posts_per_page='.$options['bcat_posts_per_page'];
    $querystr .= '&paged='.(isset($_GET['paged']) ? $_GET['paged'] : 1);
    $querystr .= '&orderby='.(isset($_GET['sort']) ? $_GET['sort'] : 'post_date');
    $querystr .= '&order='.(isset($_GET['order']) ? $_GET['order'] : 'desc');
    $querystr .= '&category__in='.(isset($_GET['cat']) ? $_GET['cat'] : '');
    $querystr .= '&s='.(isset($_GET['s']) ? $_GET['s'] : '');
    $querystr .= '&post_status=publish';

    return $querystr;
}

ひとこと

ものすごくシンプルなプラグインですが、Batch Cat、便利ですよね。

コメント(0)

新しいコメントを投稿