我正在对以前由其他人编写的主题进行定制。他们没有使用多个用户帐户来分配文章,而是为自定义作者名称创建了一个分类法,以便可以生成作者的帖子存档。代码如下,运行良好。但是,我还想替换提要中的作者名称。我假设它将是一个额外的过滤器和/或函数。有人能帮帮我吗?
add_filter( \'the_author_posts_link\', \'custom_author_name\' );
add_filter( \'get_the_author_display_name\', \'custom_author_name\' );
function custom_author_name( $name ) {
global $post;
$author = get_the_terms(get_the_ID(),\'article_author\');
if ( $author )
$name = the_terms(get_the_ID(),\'article_author\',\'\',\' & \');
return $name;
}
更新。我根据stack exchange上其他地方的代码尝试添加此函数,但它似乎覆盖了整个站点上的作者,而不仅仅是提要:
add_filter( \'the_author\', \'feed_author\' );
function feed_author($name) {
if( is_feed() ) {
global $post;
$author = get_the_terms(get_the_ID(),\'article_author\');
if ( $author )
$name = the_terms(get_the_ID(),\'article_author\',\'\',\' & \');
return $name;
}
}
算了吧!
最终使用了从WP Codex中的示例get\\u the\\u terms代码中修改的这个。
add_filter( \'the_author\', \'feed_author\' );
function feed_author($article_authors) {
if( is_feed() ) {
$author = get_the_terms( get_the_ID(), \'article_author\' );
if ( $author && ! is_wp_error( $author ) ) {
$byline = array();
foreach ( $author as $author ) {
$byline[] = $author->name;
}
$article_authors = join( " & ", $byline );
}
return $article_authors;
}
}