通过代码将自定义帖子类型的标题设置为作者的用户名

时间:2015-01-20 作者:RebDev

对于自定义帖子类型,我希望标题始终是作者的用户名。到目前为止,我已经:

限制每位作者只发布一次此类内容,以避免冲突

function remove_box() { remove_post_type_support(\'custom_post_type_name\', \'title\'); }
add_action("admin_init", "remove_box");
现在,我想在主题函数中自动插入作者的用户名作为标题。由于目前新添加的帖子被命名为“自动草稿”。任何帮助都将不胜感激。

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

实际上有一些很酷的过滤器,允许您预先填充title fieldeditor field, 我们需要的是default_title. 进入挂钩后,我们需要获取用户并显示名称:

function post_author_title( $post_title, $post ) {
    if( $post->post_type == \'your_post_type\' ) {
        $user = wp_get_current_user();

        $post_title = $user->display_name;
    }

    return $post_title;
}
add_filter( \'default_title\', \'post_author_title\', 10, 2 );
您可以尝试上述操作,但如果删除了标题框,我不确定这是否可行。另一个选项是保存帖子后手动添加标题:

Answer Link

Author - chrisguitarguy

function wpse67262_change_title( $data ) {
    if( \'your_post_type\' != $data[\'post_type\'] )
        return $data;

    $user = wp_get_current_user();
    $data[\'post_title\'] = $user->display_name;

    return $data;
}
add_filter( \'wp_insert_post_data\', \'wpse67262_change_title\' );
希望这些功能中的一个能为您工作!

结束