我添加了一些不同的 custom_post_types 到我的WordPress 3安装。它们与彼此有些不同,应该存储独特的信息 custom_fields. 。但是虽然一个人可能会存储一个 product_id, ,另一个不会。一个人会有一个 source_url 另一个不会。我不必指示我的编辑器应使用哪些自定义帖子,而是如何使每个自定义帖子都包含其自定义字段作为UI本身的一部分?

如果您访问“ daily_cartoon”,您将有一个仅要求的屏幕 标题, 标题, , 和 媒体.
如果您访问“ daily_product”,您将有一个仅要求的屏幕 标题, 价格, 概括, , ETC。

有帮助吗?

解决方案

你好 @Jonathan Sampson:

几个使自定义帖子类型更容易的插件 有些也允许您以任何特殊的顺序定义自定义字段:

正如我上面提到的那样用于分发。也许几周后。

上面列出的这些插件现在应该满足您现在的基本需求,我将尝试使我的所有这些数据与所有这些数据兼容,以防您将来决定使用我的数据。

您也可能会发现这篇文章有所帮助:

其他提示

您可以添加meta_box,以便将自定义字段数据存储在它们中。自从 add_meta_box 可以根据post_type设置,这将使您能够在不同的帖子类型中添加不同的meta_box。

看这个 邮政 有关更改自定义帖子键入新/编辑scree的完整示例。

最近,我需要在主题工作时解决一个非常相似的问题。代码的基础是 邮政 我修改了一些代码

以下是我修改的代码的第一部分。

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

以下是我修改的代码的第二部分。

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

如果您喜欢,请给我发送消息,我将很乐意向您发送我的function.php文件以供您参考。这绝对是使它实现的方式,尽管我经历了许多夜晚的头发。

许可以下: CC-BY-SA归因
scroll top