投稿や固定ページ一覧に「PR表記」絞り込み機能を追加する方法

Cocoonカスタマイズ集
この記事は約3分で読めます。
記事内に広告が含まれています。

はじめに

以下を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表記が非表示の投稿を素早く確認でき、効率的な投稿管理が可能です。

タイトルとURLをコピーしました