我为一家公司的员工创建了一个自定义帖子类型,其中包含一些他们必须填写的字段(如电子邮件、电话等)和一个选择框,该框从另一个名为“公司”的自定义帖子类型中获取一些值。我已经禁用/删除了员工职位类型的编辑器,但现在我很难在概述中列出它们,因为每个“员工”都缺少一个标题(post\\u title)。如何将员工的post\\u title设置为与自定义字段“Name”相等?
有很多代码在工作,所以我只显示我为每个员工保存数据的部分:
foreach ($meta_box[\'fields\'] as $field) {
if(isset($_POST[$field[\'id\']])) {
if(!add_post_meta($post_id, $field[\'id\'], $_POST[$field[\'id\']], true)) update_post_meta($post_id, $field[\'id\'], $_POST[$field[\'id\']]);
}
}
我有一个包含所有数据的数组,然后用每个字段的正确值保存,但我可以在这里说:
If($field[‘id’] == ‘emp_name’) {
Set($post_title = $field[‘id’]);
}
或者类似的?
如有任何帮助或建议,将不胜感激。
谢谢-梅斯蒂卡
SO网友:Chip Bennett
我会简单地过滤the_title
以便为自定义帖子类型输出适当的自定义字段数据:
<?php
function theme_slug_filter_the_title( $title ) {
global $post;
if ( \'employee\' == get_post_type( $post ) ) {
$custom = ( get_post_custom( $post->ID ) ? get_post_custom( $post->ID ) : false );
$custom_title = ( isset( $custom[\'name\'][0] ) ? $custom[\'name\'][0] : \'(Name Not Entered)\' );
return $custom_title;
} else {
return $title;
}
}
add_filter( \'the_title\', \'theme_slug_filter_the_title\' );
?>
这将用自定义帖子类型的自定义字段“name”的值替换帖子标题。如果未输入“名称”,则返回“(未输入名称)”。
(当然,您需要替换get_post_type()
和$custom[\'name\']
, 视情况而定。)