1. TOP
  2. カスタマイズ・小技
  3. 投稿のカスタム分類を簡単に!WordPressメニューをカスタムフィールドで仕分ける方法

投稿のカスタム分類を簡単に!WordPressメニューをカスタムフィールドで仕分ける方法

投稿のカスタム分類を簡単に!WordPressメニューをカスタムフィールドで仕分ける方法

WordPressのダッシュボードを、もっと効率よく使いたいと思いませんか?この記事では、カスタムフィールドを利用して投稿を分類し、それをダッシュボードのメニューに表示する方法を紹介します。、具体的なコード例を交えながら簡潔に解説します。管理をスマートにしたい方はぜひお試しください!

 

WordPressの投稿をカスタムフィールドの値に基づいて分類し、ダッシュボードのメニューに分けて表示

  1. カスタム管理ページの作成:
    • WordPressのadd_menu_page関数を使って、新しい管理画面メニューを作成します。
  2. カスタムクエリを使用して投稿を取得:
    • WP_Queryを利用して、カスタムフィールドの値を条件に投稿をフィルタリングします。
    • たとえば、カスタムフィールド「ステータス」が特定の値(例:「承認済み」)の場合、その投稿だけを取得するクエリを設定します。
  3. 管理画面の表示処理:
    • 取得した投稿をカスタム管理ページで表示します。
    • admin_menuアクションフックを使って、メニューを作成し、画面をレンダリングします。

以下は、簡単なコード例です

functions.php

function custom_menu_page() {
    add_menu_page(
        'カスタム投稿一覧', // ページタイトル
        'カスタム投稿',    // メニュータイトル
        'manage_options',  // 権限
        'custom_post_menu', // メニューのスラッグ
        'custom_menu_page_content' // 表示する内容
    );
}

add_action('admin_menu', 'custom_menu_page');

function custom_menu_page_content() {
    // カスタムフィールド「status」の値が「approved」の投稿を取得する
    $query_args = array(
        'post_type'  => 'post',
        'meta_key'   => 'status',
        'meta_value' => 'approved',
    );

    $query = new WP_Query($query_args);

    if ($query->have_posts()) {
        echo '<ul>';
        while ($query->have_posts()) {
            $query->the_post();
            echo '<li><a href="' . get_edit_post_link() . '">' . get_the_title() . '</a></li>';
        }
        echo '</ul>';
    } else {
        echo '該当する投稿がありません。';
    }

    wp_reset_postdata();
}
  • カスタムフィールドのキー名(例: status)と値を正確に指定してください。
  • 権限 (manage_options) を適切に設定することで、表示できるユーザーを制御できます。
  • メニューページのデザインや表示内容は、必要に応じてカスタマイズ可能です。

 

チェックボックスを使った例

function custom_menu_page() {
    add_menu_page(
        'カスタム投稿一覧', // ページタイトル
        'カスタム投稿',    // メニュータイトル
        'manage_options',  // 権限
        'custom_post_menu', // メニューのスラッグ
        'custom_menu_page_content' // 表示する内容
    );
}

add_action('admin_menu', 'custom_menu_page');

function custom_menu_page_content() {
    // カスタムフィールド「status」の値が「approved」の投稿を取得する
    $query_args = array(
        'post_type'  => 'post',
        'meta_key'   => 'status',
        'meta_value' => 'approved',
    );

    $query = new WP_Query($query_args);

    if ($query->have_posts()) {
        echo '<ul>';
        while ($query->have_posts()) {
            $query->the_post();
            echo '<li><a href="' . get_edit_post_link() . '">' . get_the_title() . '</a></li>';
        }
        echo '</ul>';
    } else {
        echo '該当する投稿がありません。';
    }

    wp_reset_postdata();
}と

 

投稿のサブメニュー内に追加する場合

function custom_menu_page() {
    add_menu_page(
        'チェックボックス投稿一覧', // ページタイトル
        'チェック投稿',            // メニュータイトル
        'manage_options',         // 権限
        'checkbox_post_menu',     // メニューのスラッグ
        'custom_menu_page_content' // 表示する内容
    );
}

add_action('admin_menu', 'custom_menu_page');

function custom_menu_page_content() {
    // チェックボックスフィールド「features」に「option1」が含まれる投稿を取得する
    $query_args = array(
        'post_type'  => 'post',
        'meta_query' => array(
            array(
                'key'     => 'features',  // カスタムフィールドの名前
                'value'   => 'option1',  // 検索する値
                'compare' => 'LIKE',     // 部分一致検索
            ),
        ),
    );

    $query = new WP_Query($query_args);

    if ($query->have_posts()) {
        echo '<ul>';
        while ($query->have_posts()) {
            $query->the_post();
            echo '<li><a href="' . get_edit_post_link() . '">' . get_the_title() . '</a></li>';
        }
        echo '</ul>';
    } else {
        echo '該当する投稿がありません。';
    }

    wp_reset_postdata();
}

 

 

このコードは、WordPressのカスタムフィールドを活用して投稿を分類し、その分類結果をダッシュボードの投稿メニュー下にサブメニューとして表示する方法を実現しています。以下が主なポイントのまとめです。

 

  • カスタムフィールドを利用した投稿のフィルタリング
    特定のチェックボックスの値(例: option1)を基準に投稿を取得します。meta_queryを使用することで、カスタムフィールドの条件を簡単に指定できます。
  • ダッシュボードのメニューに統合
    add_submenu_pageを使うことで、ダッシュボード内の「投稿」メニューの下にカスタム分類用のリンクを追加し、管理画面がわかりやすく整理されます。
  • 柔軟なカスタマイズが可能
    コードを調整することで、複数の条件を追加したり、サブメニューのデザインや機能を変更することができます。
  • メンテナンス性と効率性の向上
    投稿を自動的に分類・表示する仕組みを作ることで、手作業の手間を省き、管理効率を大幅に向上させます。

 

この仕組みを導入することで、管理画面の操作性が向上し、投稿管理が一段と便利になります。特に、カスタムフィールドを頻繁に活用するプロジェクトや特定の条件で投稿を分類したい場合に有用です。

 

 

 

- PR -

ニッチなテーマのイラスト素材投稿始めました。良かったら使ってください。
RU DESIGN/無料イラスト・フリー素材「イラストAC」

オリジナル絵本 Kindleにて出版
ナマケモノのふにゃまるちゃん

■困ったことがあったら安く依頼ができます(RU DESIGNとしても出品中です)


■格安レンタルサーバー


■ドメイン取得は同じところで取得しておくと便利ですよ。


応援・支援よろしくお願いいたします。サイト運営に使わせていただきます。

Braveクリエイターサポート
ホームページ制作ならRU DESIGN

関連記事

WordPressで日本語以外のコメントを制限する方法:スパム対策とコミュニティ保護
2025/03/12
WordPressサイトで、日本語以外のコメントに困っていませんか? スパムコメントや、内容のわからない外国語コメントは、サイトの管理を煩雑にするだけでなく、ユ...
ワードプレスの本文から単語を抽出し、Amazonのアフィリエイトリンクを自動生成する方法
2025/02/20
ワードプレスの投稿記事(本文)から、単語を抽出してAmazonへのリンクを生成するコードになります。 アフェリエイトタグは、ご自身のタグに書き換えてください。下...
初心者向け!WordPressでよくあるエラーとその対処法を解説
2025/02/17
WordPressは非常に人気のあるウェブサイト作成ツールですが、初めて使う方にとっては、エラーが発生した際の対処方法が難しく感じられることがあります。この記事...
All in One SEOとYoast SEO: どちらを選ぶべきか?
2025/02/16
SEO(検索エンジン最適化)は、ウェブサイトの成功に欠かせない要素です。特にWordPressユーザーにとって、効果的なSEOプラグインの選択は重要です。この記...
Bootstrap 5 ドロップダウンについて
2025/02/14
Bootstrap 5は、ウェブデザインを迅速かつ効率的に行うための人気のフレームワークです。その中でもドロップダウンメニューは、コンテンツを整理し、ユーザーイ...