サポート » 使い方全般 » 親子ページのカスタム投稿タイプの管理画面にカスタムフィールドの項目

  • 解決済 petitsabi

    (@petitsabi)


    カスタム投稿タイプを複数作りました。
    管理画面の投稿一覧にカスタムフィールドの項目を追加したいので、公開されていた記事を参考に、下記をfunction.phpに追加しました。

    通常のカスタム投稿タイプの投稿一覧には表示されるのですが、親子ページを持つカスタム投稿タイプでは表示されません。
    対処方法を教えていただけないでしょうか?

    表示させたいカスタムフィールドラベル:記事サブタイトル
    表示させたいカスタムフィールド名:post_subtitle
    ※上記カスタムフィールドは全カスタム投稿タイプに存在しています。

    function manage_posts_columns($columns) {
    	$columns['post_subtitle'] = "記事サブタイトル";
    	return $columns;
    }
    function add_column($column_name, $post_id) {
    	if( $column_name == 'post_subtitle' ) {
    		$stitle = get_post_meta($post_id, 'post_subtitle', true);
    	}
    	if ( isset($stitle) && $stitle ) {
    		echo attribute_escape($stitle);
    	} else {
    		echo __('None');
    	}
    }
    add_filter( 'manage_posts_columns', 'manage_posts_columns' );
    add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );

    ++++++++++++++++++++++++++++
    WordPress 3.4.1
    PHP5.3.8、MySQL 14.14
    ローカルサーバ(XAMPP使用)
    ブラウザ:Google Chrome Ver.22
    使用プラグイン:
    Advanced Custom Fields/Custom Post Type Permalinks/Ambrosite Next/Previous Post Link Plus/TinyMCE Advanced/WPX Nav Menus/Admin Menu Editor

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター gatespace

    (@gatespace)

    Codex読むと、manage_posts_custom_columnのアクションフックは
    カスタム投稿タイプに対応しているけど、
    階層を持つ(’hierarchical’ => true)カスタム投稿タイプは
    manage_pages_custom_column を使いましょうとなってますね。

    Codex : Plugin API/Action Reference/manage posts custom column より引用

    manage_${post_type}_posts_custom_column can be used in WP 3.1 and later for specific custom post types. Note that if the custom post type has ‘hierarchical’ => true, then the correct action hook to use is manage_pages_custom_column.

    トピック投稿者 petitsabi

    (@petitsabi)

    末尾に、

    add_action( 'manage_pages_custom_column', 'add_column', 10, 2 );

    を加えたところ、親子ページのある場合、ない場合、双方のカスタム投稿タイプで表示されました!

    Codexの見方もわかって、大変勉強になりました。
    本当にありがとうございます!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「親子ページのカスタム投稿タイプの管理画面にカスタムフィールドの項目」には新たに返信することはできません。