因此,我在另一个帖子中提出了不同的问题,但这更像是一个建议类型的问题,因此它实际上没有给出任何有用的回答。我相信我可以说得更好,应该可以帮助你们中的一些人理解我试图实现的目标,并在我们合作解决方案后可能帮助其他人。
我有一个自定义的帖子类型,它使用的支持非常有限(described here) 值,因为我只需要自定义帖子类型的元框值。对于我的类型来说,包含标题和内容是没有意义的。代码如下:
register_post_type( \'athlete\',
array(
\'labels\' => array(
\'name\' => \'Athletes\',
\'singular_name\' => \'Athlete\',
\'add_new\' => \'Add New\',
\'add_new_item\' => \'Add New Athlete\',
\'edit\' => \'Edit\',
\'edit_item\' => \'Edit Athlete\',
\'new_item\' => \'New Athlete\',
\'view\' => \'View\',
\'view_item\' => \'View Athlete\',
\'search_items\' => \'Search Athletes\',
\'not_found\' => \'No Athletes found\',
\'not_found_in_trash\' => \'No Athletes found in Trash\',
\'parent\' => \'Parent Athlete\'
),
\'public\' => true,
\'menu_position\' => 15,
\'supports\' => array( \'thumbnail\' ),
\'taxonomies\' => array( \'\' ),
\'has_archive\' => true
)
);
正如您所看到的,我只需要缩略图支持选项,因为我的帖子类型的其余部分将是元框(不包括在这个问题中)。问题是,当我保存运动员时,我有两个问题,我不知道如何在运动员列表中显示我的元框值(作为网格中的列),我也不知道如何设置标题值,因为它总是将其设置为“自动生成”,这不是首选。如果标题是可搜索的字段,我更愿意将值设置为[名字]+[姓氏]。有谁能帮助解决这两个问题,并解释一下使用自定义post类型而不是使用自定义数据库表和自定义UI来管理对象是否会遇到任何问题?
最合适的回答,由SO网友:Manny Fleurmond 整理而成
我也涉猎过这个。对于元框,我建议Meta Box 插件(我经常为其提供代码)。关于如何使用它的一个很好的教程是here. 对于自定义列,请在WPSE中进行搜索,但this 应该让你开始。保存帖子标题需要使用save_post
滤器设置元框时,请记住用于名字和姓氏的id,然后将其替换为以下代码:
add_filter( \'save_post_athlete\', \'wpse88655_set_title\', 10, 3 );
function wpse88655_set_title ( $post_id, $post, $update ){
//This temporarily removes filter to prevent infinite loops
remove_filter( \'save_post_athlete\', __FUNCTION__ );
//get first and last name meta
$first = get_metadata( \'athelete_first_name\', $post_id ); //meta for first name
$last = get_metadata( \'athelete_last_name\', $post_id ); //meta for last name
$title = $first . \' \' . $last;
//update title
wp_update_post( array( \'ID\'=>$post_id, \'post_title\'=>$title ) );
//redo filter
add_filter( \'save_post_athlete\', __FUNCTION__, 10, 3 );
}