はじめに

エディターの「その他」設定には、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());
});
さいごに
今回紹介した方法を使えば、「アーカイブに出力しない」が設定された投稿を、一覧画面で簡単に判別できるようになります。


