投稿一覧に「アーカイブに出力しない」の投稿を色分け表示する方法

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

はじめに

Gutenbergエディター

エディターの「その他」設定には、Cocoon独自の「アーカイブに出力しない」というオプションがあります(図1参照)。
この設定をオンにすると、該当の投稿は一覧ページやアーカイブページに表示されなくなります。

しかし、投稿一覧画面では「アーカイブに出力しない」設定がされているかどうかが一目で分からず、運用上不便なことがあります。

そこで、投稿一覧画面に背景色を付けて、設定状況を直感的に把握できるようにします。

の記事では、この方法について説明します。

完成イメージ

実装手順

以下のコードをfunctions.phpに追加します。

// 投稿にクラスを追加
add_filter('post_class', function ($classes, $class, $post_id) {
  global $pagenow;

  if ($pagenow !== 'edit.php') {
    return $classes;
  }

  $value = get_post_meta($post_id, 'the_page_no_archive', true);

  $value ? $classes[] = 'no-archive' : null;

  return $classes;
}, 10, 3);


// 管理用JS・CSSを追加
add_action('admin_enqueue_scripts', function ($hook_suffix) {
  if ($hook_suffix !== 'edit.php') {
    return;
  }

  $status_colors = [
    '.no-archive' => '#f3e5f5',
  ];

  ob_start();

  foreach ($status_colors as $status => $color) {
    echo ".wp-admin.post-type-post {$status} { background-color: {$color}; }";
  }
  wp_add_inline_style('wp-admin', ob_get_clean());
});

さいごに

今回紹介した方法を使えば、「アーカイブに出力しない」が設定された投稿を、一覧画面で簡単に判別できるようになります。

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