web-dev-qa-db-ja.com

Wordpress-注目の画像メタボックスがカスタム投稿タイプに表示されない

カスタム投稿タイプを作成しましたが、何らかの理由で[注目の画像]メタボックスが表示されません。

ただし、「投稿」投稿タイプには表示されます。

サムネイルのテーマサポートを有効にし、カスタム投稿タイプコードに次のコードを追加しました。

<?php

function register_cpt_product() {

    $labels = array( 
        'name' => _x( 'Products', 'product' ),
        'singular_name' => _x( 'Product', 'product' ),
        'add_new' => _x( 'Add New', 'product' ),
        'add_new_item' => _x( 'Add New Product', 'product' ),
        'edit_item' => _x( 'Edit Product', 'product' ),
        'new_item' => _x( 'New Product', 'product' ),
        'view_item' => _x( 'View Product', 'product' ),
        'search_items' => _x( 'Search Products', 'product' ),
        'not_found' => _x( 'No products found', 'product' ),
        'not_found_in_trash' => _x( 'No products found in Trash', 'product' ),
        'parent_item_colon' => _x( 'Parent Product:', 'product' ),
        'menu_name' => _x( 'Products', 'product' ),
    );

    $args = array( 
        'labels' => $labels,
        'hierarchical' => false,
        'description' => 'Allows the user to create products',
        'supports' => array( 'title', 'editor', 'thumbnail', 'revisions' ),
        'public' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'show_in_nav_menus' => true,
        'publicly_queryable' => true,
        'exclude_from_search' => false,
        'has_archive' => true,
        'query_var' => true,
        'can_export' => true,
        'rewrite' => true,
        'capability_type' => 'post'
    );

    register_post_type( 'product', $args );
}

add_action( 'init', 'register_cpt_product' );

?>

奇妙なことに、私の投稿タイプのエントリを一覧表示するページに、サムネイルという列があります。

enter image description here

誰が何が起こっているのか知っていますか?

ありがとう

14
Ashley Staggs

サムネイルはデフォルトで無効になっており、WordPress Codexは明示的に次のように述べています ここ

テーマは、これらの画像を割り当てるためのインターフェイスが[投稿の編集]画面と[ページの編集]画面に表示される前に、投稿のサムネイルのサポートを宣言する必要があります。

テーマ/プラグインのどこかでadd_theme_support('post-thumbnails')も実行したこと、または投稿タイプが上記の関数に提供された投稿タイプのリストに含まれていることを確認してください(2番目の引数は投稿タイプのオプションの配列です)。投稿タイプごとにすでに有効になっています。

注目の投稿の[画面オプション]設定は、投稿の種類ごとに非表示/表示に設定できるようです。はるかにフェッチされていますが、デフォルトでアクティブ化されているはずですが、非アクティブ化されている可能性があります。また、post_type_supports('project', 'thumbnail')の戻り値をチェックして、設定が実際に意図したとおりに設定されているかどうかを確認してください。これは、管理セクションのみに関連する問題を示しています。

注目の投稿メタボックスは、次のコード行によって管理セクションに追加されます。

if ( current_theme_supports( 'post-thumbnails', $post_type ) && post_type_supports( $post_type, 'thumbnail' ) )
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', null, 'side', 'low');

おそらく、テーマ/プラグインでそのifステートメントを実行し、意図したとおりにtrueが返されることを確認できます。そうである場合は、編集ページのソースを調べて、#postimagedivがマークアップに含まれているが、表示されていないかどうかを確認することもできます。

[〜#〜]更新[〜#〜]

TwentyElevenテーマのfunctions.phpの最後に、プラグインがアクティブ化されていないWordPress 3.4.2インストールで、次のコードを貼り付けましたが、正常に機能しました-タイプが表示され、編集画面に投稿サムネイルメタボックスが表示されました。

add_theme_support('post-thumbnails');
function setup_types() {
    register_post_type('mytype', array(
        'label' => __('My type'),
        'supports' => array( 'title', 'editor', 'thumbnail', 'revisions' ),
        'show_ui' => true,
    ));
}
add_action('init', 'setup_types');
22
Simon

私は同じ問題を抱えています。 「ポートフォリオ」投稿タイプを作成するために「カスタム投稿タイプui」プラグインを使用しました。私はたくさんのことを試しましたが、うまくいきませんでした。最後に私はこのコードを試しました

add_action('init', 'my_custom_init');
    function my_custom_init() {
        // 'portfolio' is my post type, you replace it with yours
        add_post_type_support( 'portfolio', 'thumbnail' ); 
    }

機能した !!私はコーデックスからこのコードを持っています!!

3
Xuwel Khan

カスタムテーマを実行している場合、そのテーマのカスタムファイルのどこかにtheme_support呼び出しがあり、テーマサポート呼び出しをオーバーライドしている可能性があります。

そのテーマの呼び出しを追跡できる場合は、それを独自のテーマファイルにコピーしてから、カスタム投稿タイプを追加できます。

これを関数内に配置してから、after_setup_themeなどのアクションフックを使用できます。

カスタムテーマの元のサポートコールの例を次に示します。

add_theme_support('post-thumbnails', array('slide-items','post','gallery-items','audio-items','video-items','page','event-items',

私はそのメインテーマから子テーマを実行していて、「スタッフ」と呼ばれるカスタム投稿タイプが必要でした。サムネイルを含めるためにそのカスタム投稿タイプのサポートを宣言しましたが、注目の画像メタボックスが表示されませんでした。

子テーマのfunctions.phpファイルに次のコードを追加しました。関数の最後に「staff」を追加したことに注意してください。

add_action( 'after_setup_theme', 'add_theme_support' );

function add_theme_support (){
    add_theme_support('post-thumbnails', array('slide-items','post','gallery-items','audio-items','video-items','page','event-items','staff'));
    }

お役に立てば幸いです。

2
user2366765

私はこの問題に数回遭遇しました。 BackupBuddyプラグインを無効にすると、注目の画像メタボックスが戻ってきました。あなたのインスタンスでは機能しないかもしれませんが、うまくいけば、これは他の誰かを助けるでしょう。

すべてのプラグインを無効にしてから再びオンにして、プラグインに問題があるかどうかを1つずつ確認することをお勧めします。

0
gorelog

wordpress screen options

[投稿エディタ]ページの[画面オプション]で、注目の画像が[画面に表示]に設定されていることを確認してください

0
crowjonah

これは古い質問だと思いますが、これらの解決策はどれも私にはうまくいきませんでした。 1つは、複数のプラグインがadd_theme_supportを呼び出そうとするという2つの問題があることが判明しました。 2つ目は、特定のタイプを想定しているか、サポートを追加するときにテーマの知識が必要だったことです。

次のコードスニペットでは、最初にテーマのサポートを安全に判断してから、カスタムタイプをリストに追加しています。プラグインでこれを行うことにより、他のフレンドリーなテーマやプラグインと互換性があります。実際、私はsafe_add_theme_supportがいいと思います。とにかく、これが誰かを助け、イライラする夜から彼らを救うことを願っています。

$currentPostThumbnails = get_theme_support('post-thumbnails');
if(is_array($currentPostThumbnails)) {
    add_theme_support( 'post-thumbnails', array_merge($currentPostThumbnails, array( 'mytype' )) );
}else{
    add_theme_support( 'post-thumbnails', 'mytype');
}
0
Patrick Jones