
WordPressのダッシュボードを、もっと効率よく使いたいと思いませんか?この記事では、カスタムフィールドを利用して投稿を分類し、それをダッシュボードのメニューに表示する方法を紹介します。、具体的なコード例を交えながら簡潔に解説します。管理をスマートにしたい方はぜひお試しください!
WordPressの投稿をカスタムフィールドの値に基づいて分類し、ダッシュボードのメニューに分けて表示
- カスタム管理ページの作成:
- WordPressの
add_menu_page
関数を使って、新しい管理画面メニューを作成します。
- WordPressの
- カスタムクエリを使用して投稿を取得:
WP_Query
を利用して、カスタムフィールドの値を条件に投稿をフィルタリングします。- たとえば、カスタムフィールド「ステータス」が特定の値(例:「承認済み」)の場合、その投稿だけを取得するクエリを設定します。
- 管理画面の表示処理:
- 取得した投稿をカスタム管理ページで表示します。
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
を使うことで、ダッシュボード内の「投稿」メニューの下にカスタム分類用のリンクを追加し、管理画面がわかりやすく整理されます。 - 柔軟なカスタマイズが可能
コードを調整することで、複数の条件を追加したり、サブメニューのデザインや機能を変更することができます。 - メンテナンス性と効率性の向上
投稿を自動的に分類・表示する仕組みを作ることで、手作業の手間を省き、管理効率を大幅に向上させます。
この仕組みを導入することで、管理画面の操作性が向上し、投稿管理が一段と便利になります。特に、カスタムフィールドを頻繁に活用するプロジェクトや特定の条件で投稿を分類したい場合に有用です。
関連記事
2025/04/19
WordPressでのサイト運営、始めてみましたか?✨ 最初は設定や記事の書き方など、覚えることがたくさんで大変ですよね!基本的な操作は色々なサイトで解説されて...
2025/04/19
WordPressで画像やプラグインをアップロードしようとしたら、「Missing a temporary folder」というエラーが出て、うまくアップロード...
2025/04/19
WordPressサイトで人気の高いお問い合わせフォームプラグインの一つであるWPFormsを利用していると、サイトの管理画面や、実際にフォームが表示されている...
2025/04/18
WordPressサイトを運営していると、時々「Fatal error: Maximum execution time of XX seconds exceed...
2025/04/18
WordPressでウェブサイトを運用していると、予期しないエラーメッセージに遭遇することがあります。有名なエラー(例えば、白い画面だけが表示される「真っ白画面...