# [メタ情報] # 識別子: cocoonページPV表示ONOFF_php_exe # システム名: cocoonページPV表示ONOFF_php # 技術種別: Misc # 機能名: functions.phpへ追記 https://XXXXXX.com/wp-admin/?toggle_pv=on https://XXXXXX.com/wp-admin/?toggle_pv=off # 使用言語: php # 状態: 実行用 env化終了 差異正常 # [/メタ情報] 要約:Cocoon の PV 表示を、テーマ設定を変更せず「管理者だけ CSS で ON/OFF 切り替え」できる仕組みを実装したコードである。まず XXXXXX_is_pv_on() で現在状態(on/off)を取得し、URL パラメータ ?toggle_pv= を受け取った際に XXXXXX_pv_mode として保存する。切り替え後は管理画面上に通知を表示する。フロント側では管理者ログイン時のみ適用され、PV 表示が OFF のときに .admin-pv など関連要素を CSS で非表示にする。さらに管理バーに「PV表示: ON→OFF / OFF→ON」のトグルボタンを追加し、ワンクリックで状態を切り替えられるようにしている。 functions.php ``` /* ========================================================================= * 5) Cocoon の PV 表示 ON/OFF トグル * =======================================================================*/ // 現在の状態を取得(共通動的プレフィックスに対応) function XXXXXX_is_pv_on() { $prefix = defined('XXXXXX_PREFIX') ? XXXXXX_PREFIX : 'XXXXXX'; return (get_option($prefix . '_pv_mode', 'on') !== 'off'); } add_action('admin_init', function () use ($imk_prefix) { if (current_user_can('administrator') && isset($_GET['toggle_pv'])) { update_option($imk_prefix . '_pv_mode', ($_GET['toggle_pv'] === 'off' ? 'off' : 'on')); } }); add_action('wp_head', function () use ($imk_prefix) { if (is_user_logged_in() && current_user_can('administrator') && get_option($imk_prefix . '_pv_mode') === 'off') { echo ''; } }); add_action('admin_bar_menu', function ($wp_admin_bar) use ($imk_prefix) { if (!current_user_can('administrator')) return; $is_on = (get_option($imk_prefix . '_pv_mode', 'on') !== 'off'); $wp_admin_bar->add_node([ 'id' => $imk_prefix . '-toggle-pv', 'title' => ($is_on ? 'PV表示: ON → OFF' : 'PV表示: OFF → ON'), 'href' => add_query_arg('toggle_pv', ($is_on ? 'off' : 'on'), admin_url()) ]); }, 100); ```