2012-10-25 70 views
11

我剛創建了自定義帖子類型,但由於某些原因,精選圖像元框未顯示。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

任何人都知道是怎麼回事?

感謝

回答

16

確保您已還你的主題/插件做add_theme_support('post-thumbnails')的地方,或者說你的文章類型是在提供上述功能文章類型列表中(第二個參數是文章類型的數組(可選) )如果您已經爲每個帖子類型啓用它。

顯示精選帖子的「屏幕選項」設置可以設置爲隱藏/顯示每個帖子類型。雖然它很遙遠,但它可能已被停用,但它應該被默認激活,我猜。另外,請嘗試檢查返回值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是否在標記中但不顯示。

UPDATE

我剛纔粘貼下面的代碼在第二十十一主題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'); 
+0

我在我的問題中說過,我已經啓用了縮略圖的主題支持,所以不是這樣。 –

+0

對不起,我一定錯過了。如果您在註冊帖子類型後運行'add_post_type_support('your-type','thumbnail');'它有什麼區別? – Simon

+0

我會在幾分鐘內嘗試。我的意思是我用一些奇怪的東西更新了我的問題。謝謝 –

0

wordpress screen options

確保您已精選圖片設置爲在屏幕上顯示在帖子編輯器頁面上的屏幕選項

+0

已經選中並且複選框不存在 –

+1

聽起來像你的'register_post_type'有問題。你能告訴我們剩下的嗎? – crowjonah

+0

我已經添加了我的整個自定義帖子類型代碼,並添加了一些正在發生的截圖。 –

0

嗯,我似乎已經解決了這個問題。我運行的是3.4.2,所以我刪除了所有的wordpress安裝文件(wp-config.php和我的主題除外),然後使用升級功能重新獲得3.4.2。在3.4.1上有效,但在3.4.2上沒有。

我再次降級,並將等待未來更新。我只能說這是一個奇怪的錯誤。

感謝您幫助球員。

2

如果您正在運行自定義主題,則該主題可能會在其自定義文件中的某處調用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')); 
    } 

希望有幫助。

0

我遇到過這個問題幾次了。我禁用了BackupBuddy插件,而精選圖片元框又回來了。可能不適用於您的實例,但希望這有助於其他人。

可能要嘗試禁用所有插件並將它們重新打開,以便逐個查看它是否與插件有關。

3

我有同樣的問題。我使用「自定義帖子類型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'); 
    } 

它的工作!我從代碼中得到了這段代碼!

0

我意識到這是一個較老的問題,但這些解決方案都不適合我。原來有兩個問題,第一個:試圖撥打add_theme_support的多個插件。其次是他們假設某些類型,或者在添加支持時需要關於主題的知識。

在下面的代碼片斷中,我安全地首先確定主題支持是什麼,然後將我的自定義類型添加到列表中。通過在你的插件中這樣做,它將兼容其他友好主題或插件。事實上,我認爲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'); 
} 
相關問題