好的,所以我已经注册了一些自定义帖子类型和一些分类法。现在,为了我的一生,我无法弄清楚我需要在“自定义帖子类型”中添加“自定义字段”的代码。

我需要一个下拉菜单和一个单行文本区域。但是我还需要为帖子类型设置单独的字段。因此,假设帖子类型1有3个字段,帖子类型2有4个字段,但是字段不同。

任何技巧都可以帮助我查看编解码器并发现一些内容,但无法理解我需要添加到functions.php文件中的内容

评论

使用wordpress.org/extend/plugins/types

#1 楼

这可能比您想象的要复杂,我将使用一个框架进行研究:



http://wpgear.org/#meta-fields
br />如果您想编写自己的书,请参考以下一些不错的教程:



http://net.tutsplus.com/tutorials/wordpress/creating-custom -fields-for-attachments-in-wordpress /
http://sltaylor.co.uk/blog/control-your-own-wordpress-custom-fields/

http:/ /thinkvitamin.com/code/create-your-first-wordpress-custom-post-type/


评论


真的会很难。我认为这就像将邮政代码添加到我的函数中一样简单,就像我们处理帖子类型和分类法一样。

–xLRDxREVENGEx
2011年5月13日下午3:07

我将为这个答案加一个,但这并不复杂。 thinkvitamin.com链接很好地解释了如何添加和保存元框。 sltaylor.co.uk链接是有关使用一些出色的编码实践的出色教程。我的警告是使用save_post挂钩时要小心。它被称为在怪异的时间。确保将WP_DEBUG变量设置为true,以查看使用它时可能出现的错误。

– tollmanz
2011年5月13日下午3:51

只是我使用了thinkvitamin链接进行了一次更新,这极大地帮助了我,这对于设置自定义字段是一个轻松的步伐

–xLRDxREVENGEx
2011年5月13日23:31

这个答案如何?链接?真?

–曼谷
20 Nov 24 '19:37

#2 楼

添加/编辑supports参数(使用register_post_type时),以包括custom-fields来发布您自定义帖子类型的编辑屏幕: wordpress.org/Using_Custom_Fields#Displaying_Custom_Fields

评论


您能解释一下为什么这可以解决问题吗?

– s_ha_dum
13年4月23日在14:57

是的,这可行。谁-1回答了。你能把它取回来吗?问候,

–Junaid Qadir Shekhanzai
13年7月25日在8:59

...接着.........?

–马克
16-10-26在18:33

这不会解决问题,因为OP询问如何添加经过特殊格式设置的自定义字段(“下拉列表和单行文本区域”),而不启用WordPress的通用“自定义字段”功能。

– tog22
20-10-4在3:18

#3 楼

尽管您必须添加一些验证,但是对于当前版本的WordPress,此操作似乎并不复杂。

基本上,您需要两个步骤才能将自定义字段添加到自定义帖子类型:


创建一个保存自定义字段的元框
将自定义字段保存到数据库中

这些步骤在此处进行了全局描述:http:// wordpress。 org / support / topic /是否可以向自定义帖子类型添加额外字段

示例:

添加将名为“功能”的自定义字段更改为称为“前缀-teammembers”的自定义帖子类型。

首先添加元框:您添加或编辑“ prefix-teammembers”会触发add_meta_boxes_{custom_post_type}挂钩。有关add_meta_box()函数,请参见http://codex.wordpress.org/Function_Reference/add_meta_box。在上面的add_meta_box()调用中是prefix_teammembers_metaboxes_html,这是一个添加表单字段的回调:保存save_post_{custom_post_type}钩子后会被触发(自3.7版起,请参见:https://stackoverflow.com/questions/5151409/wordpress-save-post-action-for-custom-posts)。您可以挂钩以保存您的自定义字段:

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_save_post?”您找到答案了吗,我也绊在了我不记得的额外功能触发器上?

– alex
15年2月18日在5:15

“将名为“函数”的自定义字段添加到名为“ prefix-teammembers”的自定义帖子类型。”“被称为”是什么意思?名称?singular_name?标签?也许是用作register_post_type中第一个参数的字符串函数,或者只要它是一致的,也许无关紧要。

– arnoldbird
19-10-7在17:29



#4 楼

自定义元框和自定义字段有各种插件。如果您查看的是针对开发人员的插件,则应尝试使用Meta Box。它轻巧且功能强大。

如果您正在寻找有关如何为元框/自定义字段编写代码的教程,那么这是一个不错的开始。这是该系列的第一部分,可以帮助您优化代码以使其易于扩展。

#5 楼

我知道这个问题很旧,但是有关主题的更多信息
WordPress内置了对自定义字段的支持。如果您具有自定义帖子类型,则只需在register_post_type内的支持数组中包括“ custom-fields”(由@kubante
回答)请注意,此选项也可用于本机帖子类型,例如帖子和页面您只需要打开它即可。
现在,此自定义字段非常基础,可以接受字符串作为值。在很多情况下都可以,但是对于更复杂的字段,我建议您使用“高级自定义字段”插件

#6 楼

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


完美的知识