创建自定义分类并在Metabox下拉列表中显示

时间:2013-01-10 作者:kallekillen

我想在编辑后的屏幕上创建一个下拉列表,其中包含3个已经存在的标签。最简单的方法是什么?

基本上,我所要寻找的只是一个简单的下拉列表,它将以下标签之一添加到帖子本身中;\'炖牛肉、豌豆汤辣椒\'。我还希望“炖牛肉”是默认的。

提前谢谢你

编辑:由于我不希望用户在任何时候都能够显示这三个类别中的一个以上,并且必须选择根据自己的意愿轻松更改哪一个类别,所以标签可能不是最好的解决方案?创建自定义分类法(“食物”)会更好吗?它们基本上用于改变帖子在网站首页上的显示方式。

2 个回复
最合适的回答,由SO网友:kallekillen 整理而成

我遵循这本方便的指南,它起到了很好的作用:

http://shibashake.com/wordpress-theme/wordpress-custom-taxonomy-input-panels

SO网友:Vivek Tamrakar

创建自定义帖子类型

function create_product()
{
   $labels = array(
    \'name\'               => _x( \'Product\', \'post type general name\', \'stacy\' ),
    \'singular_name\'      => _x( \'product\', \'post type singular name\', \'stacy\' ),
    \'menu_name\'          => _x( \'Products\', \'admin menu\', \'stacy\' ),
    \'name_admin_bar\'     => _x( \'Product\', \'add new on admin bar\', \'stacy\' ),
    \'add_new\'            => _x( \'Add New\', \'product\', \'stacy\' ),
    \'add_new_item\'       => __( \'Add New Product\', \'stacy\' ),
    \'new_item\'           => __( \'New Product\', \'stacy\' ),
    \'edit_item\'          => __( \'Edit Product\', \'stacy\' ),
    \'view_item\'          => __( \'View Product\', \'stacy\' ),
    \'all_items\'          => __( \'All Product\', \'stacy\' ),
    \'search_items\'       => __( \'Search Product\', \'stacy\' ),
    \'not_found\'          => __( \'No Product found.\', \'stacy\' ),
    \'not_found_in_trash\' => __( \'No Product found in Trash.\', \'stacy\' )
);
   $args = array(
    \'labels\'             => $labels,
    \'description\'        => __( \'Description.\', \'Add New Product on stacy\' ),
    \'public\'             => true,
    \'publicly_queryable\' => true,
    \'show_ui\'            => true,
    \'show_in_menu\'       => true,
    \'query_var\'          => true,
    \'rewrite\'            => array( \'slug\' => \'product\' ),
    \'has_archive\'        => true,
    \'hierarchical\'       => false,
    \'menu_position\'      => 100,
            \'menu_icon\'          =>\'dashicons-cart\',
    \'supports\'           => array( \'title\', \'editor\', \'author\', \'thumbnail\',\'comments\',\'capabilities\' ),
            \'taxonomies\'         => array(\'product_category\',\'product_tag\')
);
    register_post_type( \'product\', $args );
 }
 add_action( \'init\', \'create_product\' );
创建自定义元框并在编辑帖子时显示元值

  function add_product_details_meta_box()
  {
   global $wpdb;
   global $post;
   $custom = get_post_custom( $post->ID );
   <p>
    <label>Short Description:</label><br />
    <textarea rows="5" name="short_description" class="width99"><?= @$custom["short_description"][0] ?></textarea>
   </p> 
   <p>
    <label>Price:</label><br />
            <input type="text" name="price" value="<?= @$custom["price"][0] ?>" class="width99" />
   </p>

    <p>
    <label>Dimensions (in):</label><br />
            <input type="text" name="length" value="<?= @$custom["length"][0] ?>" class="s" placeholder="Length"/>
    </p>
    <p>
    <label>Shipping Lead Days:</label><br />
            <input type="text" name="ship_lead_days" value="<?= @$custom["product_ship_lead_days"][0] ?>" class="s" placeholder="Shipping Lead Days"/>
    </p>
    <p>
    <label>Commision:</label><br />
            <input type="text" name="commision_broker" value="<?= @$custom["commision_broker"][0] ?>" class="s" placeholder="Enter Your Commision Here"/>
    </p>
   }
  add_action( \'admin_init\', \'add_product_meta_boxes\' );
更新Post Meta

function save_product_custom_fields(){
 global $post;

 if ( $post )
 {
   update_post_meta($post->ID, "short_description", @$_POST["short_description"]);
  update_post_meta($post->ID, "price", @$_POST["price"]);
  update_post_meta($post->ID, "length", @$_POST["length"]);
       update_post_meta($post->ID,\'product_ship_lead_days\',@$_POST[\'ship_lead_days\']);
 update_post_meta($post->ID,\'commision_broker\',@$_POST[\'commision_broker\']);
  }
}
add_action( \'save_post\', \'save_product_custom_fields\' );

结束

相关推荐

Custom text for certain tags

是否可以在页面上写入(单篇文章)以显示文本,这些文本会根据记录中指定的标记类型而变化。我理解写得对。例如,通过关联数组生成一对标记文本。如果记录是针对数组中指定的标记的,则应与此标记文本相对应地显示该记录。你明白我想要什么吗?我知道WordPress中有一个函数has\\u tag(),但是如果我有太多的标签呢?我想要的:例如if (has_tag (\'TAGNAME\')) { <p> TEXT tag TAGNAME </p> elseif (has