it-swarm-vi.tech

Ở một trong hai

Tôi đã thêm một vài custom_post_types khác vào bản cài đặt Wordpress 3 của mình. Tất cả đều khác một chút so với nhau và nên lưu trữ thông tin duy nhất trong custom_fields. Nhưng trong khi người ta có thể lưu trữ product_id, thì người khác sẽ không. Một cái sẽ có source_url và cái khác thì không. Thay vì phải hướng dẫn các biên tập viên của tôi về những trường tùy chỉnh nào sẽ được sử dụng với bài đăng tùy chỉnh nào, làm cách nào tôi có thể làm cho mỗi bài đăng tùy chỉnh bao gồm các trường tùy chỉnh như một phần của chính UI?

Nếu bạn truy cập "Daily_cartoon", bạn sẽ có một màn hình chỉ yêu cầu tiêu đề , chú thích phương tiện .
[.__.] Nếu bạn truy cập "Daily_product", bạn sẽ có một màn hình chỉ yêu cầu một tiêu đề , tóm tắt giá , , v.v.

7
Sampson

Xin chào @ Jonathan Sampson :

một số bổ trợ để làm cho Loại bài tùy chỉnh dễ dàng hơn và một số bổ sung cho phép bạn xác định Trường tùy chỉnh quá, không theo thứ tự cụ thể:

Như tôi đã đề cập ở trên, tôi đã làm việc trên một giao diện không cung cấp Giao diện người dùng như thế này để thay vào đó là một API mở rộng cho các loại trường phức tạp (và cả các loại đơn giản.) Nhưng sau khi dành một giờ cố gắng để đóng gói, tôi nhận ra rằng nó chưa sẵn sàng để phân phối chưa. Có thể trong một vài tuần.

Các plugin được liệt kê ở trên sẽ đáp ứng nhu cầu cơ bản của bạn ngay bây giờ và tôi sẽ cố gắng làm cho tôi tương thích với dữ liệu được lưu trữ bởi tất cả các plugin này trong tương lai trong trường hợp bạn quyết định sử dụng của tôi trong tương lai.

Bạn cũng có thể tìm thấy bài đăng này một chút giúp đỡ:

4
MikeSchinkel

bạn có thể thêm meta_box để có dữ liệu trường tùy chỉnh được lưu trữ trong đó. vì add_meta_box có thể được đặt theo post_type, điều này sẽ cho phép bạn thêm meta_box khác nhau vào các loại bài đăng khác nhau.

hãy xem bài đăng này để biết ví dụ đầy đủ về việc thay đổi loại bài đăng mới/chỉnh sửa scree.

5
hannit cohen

Gần đây tôi đã cần phải giải quyết một vấn đề rất giống trong khi làm việc trong một chủ đề. Cơ sở của mã là từ bài đăng này và tôi đã sửa đổi một số mã

Sau đây là phần đầu tiên của mã tôi đã sửa đổi.

    add_action('init', 'limited_post_type');
function my_custom_limited_post_type() 
{
  $labels = array(
    'name' => _x('Limited Post Type', 'post type general name'),
    'singular_name' => _x('Film - DVD', 'post type singular name')
  );
  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true, 
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => null,
    'supports' => array('title','editor','author','thumbnail','excerpt', 'page-attributes','custom-fields' ),
    'show_in_nav_menus' => true
  ); 
  register_post_type('limited_post_type', $args);
}

Sau đây là phần thứ hai của mã tôi đã sửa đổi.

foreach ( $scope as $scopeItem ) {
       switch ( $scopeItem ) {
           case "post": {
             // Output on any post screen
             if ( basename( $_SERVER['SCRIPT_FILENAME'] )=="post-new.php" || $post->post_type=="post" )
             $output = true;
             break;}              
            case "page": {
                  // Output on any page screen
                  if ( basename( $_SERVER['SCRIPT_FILENAME'] )=="page-new.php" || $post->post_type=="page" )
            $output = true;
            break;}
             case "limited_post_type": {
                                // Output on limited post_type onlye
            if ((basename( $_SERVER['SCRIPT_FILENAME'] )=="post-new.php" && $post->post_type=="limited_post_type" ) || (basename( $_SERVER['SCRIPT_FILENAME'] )=="post.php" && $post->post_type=="film_dvd" ))
                   $output = true;
                   break;
                  }

Nếu bạn thích xin vui lòng gửi cho tôi một tin nhắn và tôi sẽ vui lòng gửi cho bạn tệp tin.php của tôi để bạn tham khảo. Đây chắc chắn là cách để làm cho nó xảy ra mặc dù tôi đã trải qua nhiều đêm nhổ tóc như chính mình.

0
jnolte