如何将自定义字段添加到自定义发布类型?

时间:2011-05-13 作者:xLRDxREVENGEx

好的,我已经注册了一些自定义帖子类型和一些分类法。现在,就我的一生而言,我无法理解向自定义帖子类型添加自定义字段所需的代码。

我需要一个下拉列表和一个单行文本区域。但我还需要为帖子类型提供单独的字段。因此,假设post type one有3个字段,post type 2有4个字段,但字段不同。

任何提示都会帮助我查看法典并找到一些东西,但无法理解我需要添加到functions.php 文件

8 个回复
SO网友:kubante

添加/编辑supports 参数(使用时register_post_type ) 包括custom-fields 要发布自定义帖子类型的编辑屏幕,请执行以下操作:

\'supports\' => array( 
  \'title\', 
  \'editor\', 
  \'excerpt\', 
  \'thumbnail\', 
  \'custom-fields\', 
  \'revisions\' 
)
资料来源:https://codex.wordpress.org/Using_Custom_Fields#Displaying_Custom_Fields

SO网友:Bass Jobsen

虽然您应该添加一些验证,但对于当前版本的WordPress,此操作似乎并不复杂。

基本上,向自定义帖子类型添加自定义字段需要两个步骤:

创建一个包含自定义字段的元框,将自定义字段保存到数据库中。以下是这些步骤的总体描述:http://wordpress.org/support/topic/is-it-possible-to-add-an-extra-field-to-a-custom-post-type

示例:

将名为“function”的自定义字段添加到名为“prefix teammembers”的自定义帖子类型中。

首先添加元盒:

function prefix_teammembers_metaboxes( ) {
   global $wp_meta_boxes;
   add_meta_box(\'postfunctiondiv\', __(\'Function\'), \'prefix_teammembers_metaboxes_html\', \'prefix_teammembers\', \'normal\', \'high\');
}
add_action( \'add_meta_boxes_prefix-teammembers\', \'prefix_teammembers_metaboxes\' );
如果您添加或编辑“prefix teammembers”,则add_meta_boxes_{custom_post_type} 挂钩已触发。看见http://codex.wordpress.org/Function_Reference/add_meta_box 对于add_meta_box() 作用在上述调用中add_meta_box()prefix_teammembers_metaboxes_html, 用于添加表单字段的回调:

function prefix_teammembers_metaboxes_html()
{
    global $post;
    $custom = get_post_custom($post->ID);
    $function = isset($custom["function"][0])?$custom["function"][0]:\'\';
?>
    <label>Function:</label><input name="function" value="<?php echo $function; ?>">
<?php
}
在第二步中,将自定义字段添加到数据库中。保存时save_post_{custom_post_type} 挂钩已触发(自3.7版起,请参阅:https://stackoverflow.com/questions/5151409/wordpress-save-post-action-for-custom-posts). 您可以挂接此链接以保存自定义字段:

function prefix_teammembers_save_post()
{
    if(empty($_POST)) return; //why is prefix_teammembers_save_post triggered by add new? 
    global $post;
    update_post_meta($post->ID, "function", $_POST["function"]);
}   

add_action( \'save_post_prefix-teammembers\', \'prefix_teammembers_save_post\' );   

SO网友:Anh Tran

有各种用于自定义元框和自定义字段的插件。如果你看一个专注于开发人员的插件,那么你应该试试Meta Box. 它重量轻,功能强大。

如果您正在寻找关于如何为元框/自定义字段编写代码的教程,那么this 这是一个良好的开端。这是本系列的第一部分,它可能会帮助您优化代码,使其易于扩展。

SO网友:Ram Alsaifi

我知道这个问题很老,但想了解更多关于这个话题的信息

WordPress内置了对自定义字段的支持。如果您有一个自定义的post类型,那么您只需要在register\\u post\\u类型内的支持数组中包含“自定义字段”,如@kubante所回答的

Note 此选项也可用于本地帖子类型,如只需打开它的帖子和页面

现在,这个自定义字段非常基本,它接受字符串作为值。在许多情况下,这很好,但对于更复杂的字段,我建议您使用“高级自定义字段”插件

SO网友:Becka Berhanu

thinkvitamin链接。com中接受的答案不再有效。该网站已将其域名切换到树屋。com。我只是在这里回答,因为我没有足够的声誉发表评论。该过期链接的内容可在此处查看:https://blog.teamtreehouse.com/create-your-first-wordpress-custom-post-type 给任何需要它的人。祝你好运!

SO网友:surga

如果您认为您已经正确地完成了所有操作,并且正在使用Wordpress 5.7,那么您可能只需要在附加面板中显示它。

单击左上角的3个垂直点>;首选项(>);面板

enter image description here

当然,这是在您确保post类型具有正确的配置之后进行的。

SO网友:DTIndia
// slider_metaboxes_html , function for create HTML 
function slider_metaboxes( ) {
   global $wp_meta_boxes;
   add_meta_box(\'postfunctiondiv\', __(\'Custom link\'), \'slider_metaboxes_html\', \'slider\', \'normal\', \'high\');
}

//add_meta_boxes_slider => add_meta_boxes_{custom post type}
add_action( \'add_meta_boxes_slider\', \'slider_metaboxes\' );

Perfect knowledge

结束

相关推荐