2012-10-25 37 views
11

Tôi vừa tạo một loại bài đăng tùy chỉnh, nhưng vì lý do nào đó, hộp meta Ảnh nổi bật không hiển thị.Wordpress - Ảnh nổi bật Meta Box không hiển thị trên loại bài đăng tùy chỉnh

Tùy chọn này hiển thị trên loại bài đăng "bài đăng".

Tôi đã bật hỗ trợ chủ đề cho hình thu nhỏ và đã thêm mã sau vào mã loại bài đăng tùy chỉnh của tôi.

<?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'); 

?> 

Điều kỳ lạ là trên trang liệt kê các mục nhập cho bài đăng của tôi, có một cột được gọi là Hình thu nhỏ.

enter image description here

Bất cứ ai biết điều gì đang xảy ra vậy?

Cảm ơn

Trả lời

16

Hãy chắc chắn rằng bạn cũng đã làm add_theme_support('post-thumbnails') đâu đó trong chủ đề của bạn/plugin, hoặc là loại bài viết của bạn là trong danh sách các bài loại cung cấp cho các chức năng trên (số thứ hai là một mảng không bắt buộc bưu loại) nếu bạn đã bật tính năng này cho mỗi loại bài đăng.

Có vẻ như cài đặt "Tùy chọn màn hình" cho bài đăng nổi bật có thể được đặt thành ẩn/hiển thị trên mỗi loại bài đăng. Mặc dù nó được tìm nạp nhiều nhưng nó có thể đã bị vô hiệu hóa, mặc dù nó sẽ được kích hoạt theo mặc định tôi đoán. Ngoài ra, hãy thử kiểm tra giá trị trả lại của post_type_supports('project', 'thumbnail') để xác định xem cài đặt có thực sự được đặt như dự định hay không, điều này sẽ trỏ đến vấn đề chỉ liên quan đến phần quản trị.

Các hòm thư bưu meta tính năng được thêm vào phần admin của các dòng sau mã:

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'); 

Có lẽ bạn có thể chạy mà nếu-tuyên bố trong chủ đề của bạn/plugin và chắc chắn rằng nó trả về true như dự định . Trong trường hợp đó, bạn cũng có thể muốn kiểm tra nguồn của trang chỉnh sửa để xem liệu #postimagediv có trong đánh dấu nhưng không hiển thị hay không.

CẬP NHẬT:

tôi chỉ dán đoạn mã sau vào ở phần cuối của functions.php của chủ đề Hai mươi Eleven, trên WordPress 3.4.2 cài đặt không có plug-in được kích hoạt, và nó làm việc tốt - loại cho thấy và tôi có thể thấy hộp meta hình thu nhỏ bài đăng trong màn hình chỉnh sửa.

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

Tôi đã nói trong câu hỏi của mình rằng tôi đã bật hỗ trợ chủ đề cho hình thu nhỏ, vì vậy không phải vậy. –

+0

Xin lỗi, tôi phải bỏ lỡ điều đó. Nó có tạo nên sự khác biệt nào nếu bạn chạy 'add_post_type_support ('kiểu của bạn', 'hình thu nhỏ');' sau khi đăng ký loại bài đăng? – Simon

+0

Tôi sẽ thử điều đó sau vài phút. Trong ý nghĩa tôi đã cập nhật câu hỏi của tôi với một cái gì đó kỳ lạ. Cảm ơn –

0

wordpress screen options

Hãy chắc chắn rằng bạn đã chọn phòng được chọn hiển thị trên màn hình trong Options Screen trên trang bài biên tập

+0

Đã chọn và hộp kiểm không có ở đó –

+1

Có vẻ như đã xảy ra sự cố với 'register_post_type' của bạn. Bạn có thể cho chúng tôi xem phần còn lại của nó không? – crowjonah

+0

Tôi đã thêm toàn bộ mã loại bài đăng tùy chỉnh của mình và đã thêm một vài ảnh chụp màn hình về những gì đang diễn ra. –

0

Vâng, tôi dường như đã giải quyết được vấn đề. Tôi đã chạy 3.4.2, vì vậy tôi đã xóa tất cả các tệp cài đặt wordpress (ngoại trừ wp-config.php và chủ đề của tôi), và sau đó sử dụng tính năng nâng cấp để nhận lại 3.4.2. Ngày 3.4.1 nó hoạt động, nhưng trên 3.4.2 nó không.

Tôi đã hạ cấp một lần nữa và sẽ đợi bản cập nhật trong tương lai. Tất cả những gì tôi có thể nói là đây là một lỗi kỳ lạ.

Cảm ơn bạn đã giúp các bạn.

2

Nếu bạn đang chạy chủ đề tùy chỉnh, chủ đề đó có thể có một cuộc gọi theme_support ở đâu đó trong các tệp tùy chỉnh có thể ghi đè cuộc gọi hỗ trợ chủ đề của bạn.

Nếu bạn có thể theo dõi bản nhạc đó xuống cuộc gọi của chủ đề đó, bạn có thể sao chép nó vào tệp chủ đề của riêng bạn và sau đó thêm loại bài tùy chỉnh của bạn vào đó.

Bạn có thể đặt nó bên trong một hàm và sau đó sử dụng móc hành động, như after_setup_theme.

đây là một ví dụ về một cuộc gọi hỗ trợ ban đầu chủ đề tùy chỉnh:

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

tôi đã chạy một child theme tắt mà chủ đề chính và cần một loại bài tùy chỉnh gọi là 'nhân viên'. Mặc dù tôi đã tuyên bố hỗ trợ cho loại bài đăng tùy chỉnh đó để bao gồm hình thu nhỏ, nhưng hộp meta hình ảnh nổi bật không hiển thị.

Tôi đã thêm mã sau vào tệp functions.php chủ đề con của mình. Lưu ý, tôi đã thêm 'staff' vào cuối hàm.

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')); 
    } 

Hy vọng điều đó sẽ hữu ích.

0

Tôi đã gặp sự cố này vài lần. Tôi đã vô hiệu hóa plugin BackupBuddy và hộp meta Ảnh nổi bật quay lại. Có thể không làm việc trong trường hợp của bạn, nhưng hy vọng điều này sẽ giúp người khác.

Có thể muốn thử tắt tất cả các plugin của bạn và bật lại để xem từng plugin có phải là sự cố với plugin hay không.

3

Tôi gặp vấn đề tương tự. tôi đã sử dụng plugin "custom post type ui" để tạo một loại bài đăng 'portfolio'. tôi đã thử rất nhiều thứ, nhưng không hiệu quả. Cuối cùng tôi đã thử mã này

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'); 
    } 

nó hoạt động !! Tôi đã có mã này từ codex !!

0

Tôi nhận thấy đây là một câu hỏi cũ, nhưng không giải pháp nào trong số này phù hợp với tôi. Hóa ra có hai vấn đề, đầu tiên: nhiều plugin cố gắng gọi add_theme_support. Thứ hai là họ giả định một số loại nhất định hoặc cần kiến ​​thức về chủ đề khi thêm hỗ trợ.

Trong đoạn mã sau đây, trước tiên tôi xác định được hỗ trợ chủ đề là gì và sau đó thêm loại tùy chỉnh của tôi vào danh sách. Bằng cách làm điều này trong plugin của bạn, nó sẽ tương thích với các chủ đề hoặc plugin thân thiện khác. Trong thực tế, tôi nghĩ rằng một safe_add_theme_support sẽ được tốt đẹp. Dù sao, tôi hy vọng điều này sẽ giúp ai đó và cứu họ khỏi một buổi tối khó chịu.

$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'); 
} 
Các vấn đề liên quan