Standing on the Shoulder of Linus

Home / 2015 / 2月 / 06 / カスタム投稿タイプの下書きをダッシュボードに表示する

カスタム投稿タイプの下書きをダッシュボードに表示する

WordPressのダッシュボードには、最近の投稿や、最近の下書き等が表示されています。個人ブログだとこれで十分ですが、規模の大きいウェブサイトとかだとカスタム投稿タイプを使うケースもあると思います。なので、カスタム投稿タイプの下書きも表示できるようにしてみます。

WordPress本体のコードを見る

WordPressでは、ダッシュボードなどの管理画面を自由にカスタマイズできます。だからといって、やみくもにコードを書き始めるのは、あまり得策とは言えません。特に今回のケースでは、「投稿の最近の下書き」は既にWordPressのダッシュボードに表示されています。WordPress本体のどこかに、「投稿の最近の下書き」があるはずだ、と考えれば、まずは「WordPress本体のコードを見る」というのが良いと分かるでしょう。

ダッシュボードの処理

ダッシュボードは管理画面内にあるので、wp-adminを見ていきます。wp-admin直下には、ダッシュボードと関係の深そうなファイルは見当たりません。ですが、wp-admin/index.phpファイルを見てみます。そうすると、

require_once(ABSPATH . 'wp-admin/includes/dashboard.php');

という記述がありますね。これで、wp-admin/includes/dashboard.phpを読めば良さそうだ、という事が分かります。

wp-admin/includes/dashboard.phpを見ていくと、wp_dashboard_recent_draftsという関数が見つかりますね。この関数は、「下書き一覧を引数で受け取って、整形して出力する」処理を行います(引数が無い場合は投稿の下書きを取得して出力します)。

この関数を使えば、今回の目標である「カスタム投稿タイプの下書きをダッシュボードに表示する」はかなり簡単に実現できそうです。

完成コード

wp_dashboard_recent_draftsに、カスタム投稿タイプの下書きを渡して処理を行います。

function my_draft() {
    $arg = array('post_type' => 'events', 'post_status' => 'draft'); // *条件: カスタム投稿 events の下書き
    $messages = get_posts($arg); // *の条件でデータを取得
    wp_dashboard_recent_drafts($messages); // 関数にデータを渡す
}

function my_dashboard_widgets() {
    wp_add_dashboard_widget('my_dashboard_widget', 'イベント情報の下書き', 'my_draft'); // 独自メタボックスを作成し、my_draft関数を呼び出す
}
add_action('wp_dashboard_setup', 'my_dashboard_widgets'); // ダッシュボードで独自メタボックスを表示する

my_draft()が実際の処理を行っている関数です。my_dashboard_widgets()はダッシュボードにメタボックスを追加します。さいごに、my_dashboard_widgets()関数を、wp_dashboard_setupフックで実行するように設定すれば、完了です。

カスタム投稿タイプが複数必要なら、wp_dashboard_recent_draftsを複数回呼び出してください。

ダッシュボードの表示

以下のようになります。

custom_post_type_draft

カスタム投稿タイプの下書きもダッシュボードで確認することができるようになりました。

関連

Posted in WordPress | Tagged カスタム投稿タイプ, 管理画面カスタマイズ
← Novius OS でXMLや JSON出力をする方法 コマンドラインからNovius OSへ投稿する方法 →

アーカイブ

人気の投稿とページ

  • キンドル本を印刷する(PDFに変換する)方法
  • 名古屋駅から国際センターまでの道のり(徒歩)
  • AGPL ライセンス(GPLとは似ているが違いもある)
  • WordPress見積プラグインで見積書PDF発行
  • JP-Secure SiteGuard WP Pluginは不正ログイン防止に役立つか

プロフィール

水野史土:月70万PVホームページ制作会社のレスキューワーク株式会社で、PHPソフトウェアのサポートを行っている。concrete5コミュニティリーダー、Novius OSコアコード貢献者でもある。 詳しくは管理者詳細参照。
大好評WordPress書籍「WordPressユーザーのためのPHP入門 はじめから、ていねいに。」サポートページ

Copyright © 2015 Standing on the Shoulder of Linus.