WordPressでサイト運営をしていて以下のようなことを考えたりすることがたまにあります。
投稿管理画面に対して備忘録的なメモを残せればいいのに
そんな機能をWordPressテーマにコピペで簡単に実装する方法の紹介です。
管理画面のサイドバーにこんなメモ入力欄を作成します。
目次
メモ機能の実装方法
今回のメモ機能を実装するには、子テーマ等のfunctions.phpに以下のコードを貼り付けるだけです。
/////////////////////////////////////// // カスタムボックスの追加 /////////////////////////////////////// add_action('admin_menu', 'add_memo_custom_box'); if ( !function_exists( 'add_memo_custom_box' ) ): function add_memo_custom_box(){ //メモボックスの追加 add_meta_box( 'singular_memo_settings','メモ', 'view_memo_custom_box', 'post', 'side' ); add_meta_box( 'singular_memo_settings','メモ', 'view_memo_custom_box', 'page', 'side' ); } endif; /////////////////////////////////////// // 表示 /////////////////////////////////////// if ( !function_exists( 'view_memo_custom_box' ) ): function view_memo_custom_box(){?> <textarea name="the_page_memo" placeholder="" rows="10" style="width: 100%;"><?php echo get_the_page_memo(); ?></textarea> <p>この投稿に記録しておきたいメモがある場合は記入してください。</p> <?php } endif; /////////////////////////////////////// // 保存 /////////////////////////////////////// add_action('save_post', 'memo_custom_box_save_data'); if ( !function_exists( 'memo_custom_box_save_data' ) ): function memo_custom_box_save_data($post_id){ if (isset($_POST['the_page_memo'])) { $the_page_memo = $_POST['the_page_memo']; update_post_meta( $post_id, 'the_page_memo', $the_page_memo ); } } endif; /////////////////////////////////////// // メモ内容の取得 /////////////////////////////////////// if ( !function_exists( 'get_the_page_memo' ) ): function get_the_page_memo($post_id = null){ if (!$post_id) { $post_id = get_the_ID(); } $value = get_post_meta($post_id, 'the_page_memo', true); return $value; } endif; /////////////////////////////////////// // 投稿一覧にメモカラムの挿入 /////////////////////////////////////// add_filter( 'manage_posts_columns', 'customize_admin_manage_posts_columns' ); if ( !function_exists( 'customize_admin_manage_posts_columns' ) ): function customize_admin_manage_posts_columns($columns) { //メモ表示 $columns['memo'] = 'メモ'; return $columns; } endif; /////////////////////////////////////// // 投稿一覧にメモの表示 /////////////////////////////////////// add_action( 'manage_posts_custom_column', 'customize_admin_add_column', 10, 2 ); if ( !function_exists( 'customize_admin_add_column' ) ): function customize_admin_add_column($column_name, $post_id) { //メモ表示 if ( 'memo' == $column_name ) { //テーマで設定されているサムネイルを利用する場合 $thum = esc_html(get_the_page_memo($post_id)); } if ( isset($thum) && $thum ) { echo $thum; } } endif;
上記コピペのみで実装できます。
簡単に言うと、以下の実装を行っています。
- 投稿・固定ページの管理画面にメモ入力フォームを表示する
- 投稿・固定ページの一覧にメモ表示欄を表示する
それぞれコードの意味を書き出すと、長くなりすぎるので割愛。
動作確認
あとは、投稿管理画面を表示すると以下のように「メモ」入力フォームが表示されます。
例えば、こんな感じで入力して「投稿」ボタンを押すと内容が保存されます。
そして、投稿・固定ページの一覧ページで以下のように表示されます。
まとめ
投稿・固定ページ管理画面へのメモ機能は、こんな感じでコピペで結構簡単にできます(※書かれているコードを理解する必要がなければ)。
人間、「やらなければ!」と強く思っていることでも、しばしば忘れてしまうことはあります。歳をとるとなおさら。
なので「自分は忘れっぽいので、ちょこちょこメモを残しておきたい」なんて場合は、結構重宝するカスタマイズかと思います。
こんにちは!うみにんと申します。
wordpressで記事を書いているときに「ちょっとあったら良いのに」
と思うメモ機能をプラグイン無しに実現できる所が非常に役立ちました!
ありがとうございます。非常に良い記事でした!!