勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

WordPressダッシュボードの記事一覧ページにタグ検索機能を追加する方法

  WordPress CMS

WordPressダッシュボードの記事一覧ページは、デフォルトだと「キーワード検索」「日付・カテゴリ絞り込み検索」はあるものの、タグによる絞り込み検索はできない。ここにタグ絞り込み検索機能を追加したい。また、プラグインではなくfunctions.phpで対応したい。以下に対応方法をメモ。

 

対応方法

functions.php

functions.phpに以下を追記する。

//ダッシュボードの記事一覧にタグ検索を追加
function add_posts_search_tag_dashboard(){
    global $post_type;
    if( $post_type == 'post' ){
        wp_dropdown_categories(
            array(
                'show_option_all' => 'タグ一覧', //未検索時のテキスト
                'taxonomy'        => 'post_tag', //対応するタクソノミー
                'name'            => 'tag', //検索のkey
                'value_field'     => 'slug', //検索のvalue
                'selected'        => get_query_var('tag'), //selectedにしておく項目
                'show_count'      => false, //記事数を非表示
                'hide_empty'      => true, //記事が1件も紐づいていない項目を非表示
            )
        );
    }
}
add_action('restrict_manage_posts', 'add_posts_search_tag_dashboard');

//タグ未指定の場合は全検索
function search_all_tag(){
    if( is_admin() && $_GET['tag'] === '0' ){
        unset ($_GET['tag']);
    }
}
add_action('load-edit.php', 'search_all_tag');

補足

今回はデフォルトの記事一覧にタグ検索を追加する想定になるが、カスタム投稿タイプの場合は「$post_type == 'post'」とwp_dropdown_categories内のパラメータを適宜変更する必要あり。

 

リファレンス

restrict_manage_posts

https://developer.wordpress.org/reference/hooks/restrict_manage_posts/

wp_dropdown_categories

https://developer.wordpress.org/reference/functions/wp_dropdown_categories/

load-{$page}

https://developer.wordpress.org/reference/hooks/load-page-php/

 - WordPress CMS

  関連記事

WordPressで画像にカテゴリを設定し、記事投稿の際の画像選択時に指定したカテゴリの画像のみ表示させる方法
WordPressで画像にカテゴリを設定し、記事投稿の際の画像選択時に指定したカテゴリの画像のみ表示させる方法

WordPressのメディアライブラリに画像を沢山登録していると、記事投稿の際の ...

WordPressで事前に指定した禁止ワードが入力されている場合は記事を保存・公開できないようにする方法
WordPressで事前に指定した禁止ワードが入力されている場合は記事を保存・公開できないようにする方法

WordPressで事前に指定した禁止ワードが入力されている場合に記事を保存・公 ...

WordPressでユーザー毎にフラグを持たせ分岐処理を行う方法
WordPressでユーザー毎にフラグを持たせ分岐処理を行う方法

WordPressでユーザー毎に何らかのフラグを持たせて、フラグによって分岐処理 ...

WordPressのMedia Library Organizerでダイアログ初回表示時のカテゴリを指定する方法
WordPressのMedia Library Organizerでダイアログ初回表示時のカテゴリを指定する方法

Media Library Organizerを使用中のWPサイトで画像をカテゴ ...

WordPressのCron設定(wp-cron.php)を変更し負荷対策する方法
WordPressのCron設定(wp-cron.php)を変更し負荷対策する方法

WordPressのcron設定(wp-cron.php)を変更することで負荷が ...