我一直在研究如何按作者自动标记一篇文章,因此如果“PeterParker”撰写一篇文章,该文章将自动显示一个标记“PeterParker”这是因为我将有一个多作者的博客,其中包含由各种博客卷选择的自定义帖子类型,我不想让用户记住在每个帖子中标记自己。
我偶然发现this thread 这似乎是在问我现在正在做的事情,并以以下代码结束:
add_action( \'save_post\', \'add_authors_name\');
function add_authors_name( $post_id ) {
global $post;
$post_author = $post->post_author; // returns the Author ID
// get the author\'s WP_User object so we can get the Author Name
$post_author_obj = get_userdata( $post_author );
$post_author_name = $post_author_obj->first_name . \' \' . $post_author_obj->last_name;
wp_set_post_terms( $post_id, $post_author_name, \'post_tag\', true );
}
我把它放在函数中。php和它破坏了我的网站。我不得不登录到托管公司并通过ftp重置文件。
然后我发现this thread 这也提供了一种可接受的(尽管更混乱)方法,可以自动将作者分配到特定类别。这让我找到了一个有人回复的插件,但那是3年前的插件,当我尝试安装/激活它时,该插件不再工作。
然后我在谷歌上搜索了更多内容,但只找到了一个freelancer.com link 那就是要求制作这种插件。
我会感谢你的帮助。我试图对此做大量的研究,但最终破坏了我的网站,或者陷入了死胡同。非常感谢。
编辑:由于cybmeta的帮助提示,我能够解释,我确实想最终尝试自定义作者。php,但现在我甚至不知道如何制定stackexchange可以接受的问题。对我来说,作者的自动标记是我在没有编码的情况下继续使用我的网站的最后一块拼图,因此我非常感谢您的帮助。非常感谢你迄今为止的帮助,cybmeta。
最合适的回答,由SO网友:cybmeta 整理而成
阅读您的评论,您需要的是使用标记创建作者存档,并自定义作者存档页面。你不需要标签或类别。有一个内置的作者存档,默认情况下URL的格式为yoursite.com/author/username
. 该URL将按作者显示所有帖子,并将使用您可以看到的模板层次结构here. 要自定义作者存档,可以使用模板author.php
; 如果要为特定作者自定义存档,可以使用模板author-{username}.php
或author-{usernid}.php
.
此外,您还可以使用WP_Query, get_posts, 等等,用于自定义查询和循环。
虽然我不明白用作者姓名标记帖子的意义,但这里有一个有效且经过测试的代码:
add_action( \'save_post\', \'add_authors_name\', 10, 2);
function add_authors_name( $post_id, $post ) {
// Check the post type to apply only to satandard posts.
// Bypass if the $post is a revision, auto-draft or deleted
if( $post->post_type == \'post\' ) {
$post_author = $post->post_author; // returns the Author ID
// get the author\'s WP_User object so we can get the Author Name
$post_author_obj = get_userdata( $post_author );
$post_author_name = $post_author_obj->first_name . \' \' . $post_author_obj->last_name;
if( ! has_term( $post_author_name, \'post_tag\', $post ) ) {
wp_set_post_terms( $post_id, $post_author_name, \'post_tag\', true );
}
}
}