はじめに
以下をCocoonで実現します。
通常、Cocoon設定→広告→PR表示設定の自動挿入ページで、PR表示対象のページを一括設定できます。
個別の投稿については、Gutenbergエディターの広告設定で「PR表記を除外する」オプションで設定できます。
そこで、管理画面の投稿一覧にフィルタードロップダウンを追加し、「非表示」のみを表示できるようにします。
この記事では、この方法について説明します。
完成イメージ

実装手順
以下のコードをfunctions.phpに追加します。
// 一覧にフィルターボタンを追加
add_action('restrict_manage_posts', function () {
global $pagenow;
if ($pagenow !== 'edit.php') {
return;
}
$selected = isset($_GET['the_page_pr_labels_novisible_filter'])
? sanitize_text_field(wp_unslash($_GET['the_page_pr_labels_novisible_filter']))
: '';
?>
<select name="the_page_pr_labels_novisible_filter">
<option value="">PR表記(全て)</option>
<option value="1" <?php selected($selected, '1'); ?>>非表示</option>
</select>
<?php
});
// 投稿クエリの取得条件を変更
add_action('pre_get_posts', function ($query) {
global $pagenow;
if (
$pagenow !== 'edit.php' ||
!$query->is_main_query() ||
!isset($_GET['the_page_pr_labels_novisible_filter'])
) {
return;
}
$filter = sanitize_text_field(wp_unslash($_GET['the_page_pr_labels_novisible_filter']));
if ($filter === '') {
return;
}
$query->set('meta_query', [
[
'key' => 'the_page_pr_labels_novisible',
'value' => $filter,
'compare' => '=',
],
]);
});
さいごに
今回紹介した方法を使えば、投稿、固定ページ一覧で「PR非表示」の絞り込みを簡単に実現できます。
絞り込み条件を利用すれば、PR表記が非表示の投稿を素早く確認でき、効率的な投稿管理が可能です。

