在新窗口中打开_Author_link()

时间:2017-07-17 作者:S. Wannsee

我需要多看一眼。我在商业主题函数中自定义了一段代码,代码如下:

    <div class="author-description">
        <h5><span class="fn"><?php the_author_link(); ?></span></h5>
        <p class="note"><?php the_author_meta( \'description\', $id ); ?></p>
        <?php csco_post_author_social_accounts( $id ); ?>
    </div>
the_author_link() 其中,说明了用户的名称,或用户网站的链接,可以填写在管理员用户配置文件中。这个the_author_link() 根据法典,不接受任何参数。

我希望此函数在新窗口中打开链接。是否需要分解该函数?

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

是的,您必须通过用户的元数据获取url:

<?php
if ( get_the_author_meta(\'url\') ) {
    // Author has website url
    $author_url = get_the_author_meta(\'url\');
} else {
    // Author doesn\'t have website url, so get Author Posts Page
    $author_url = get_author_posts_url( get_the_author_meta(\'ID\') );
}
?>
<a href="<?php echo $author_url; ?>" target="_blank">Author\'s website</a>

SO网友:kero

遗憾的是,这是WordPress不允许通过过滤器或操作进行定制的一部分,正如您在source code for that function.

但是,您可以复制该代码并将其设置为您自己的代码

function wpse_get_author_link_target_blank() {
    if ( get_the_author_meta(\'url\') ) {
        return sprintf( \'<a href="%1$s" title="%2$s" rel="author external" target="_blank">%3$s</a>\',
        // added this part -------------------------------------------------^
            esc_url( get_the_author_meta(\'url\') ),
            /* translators: %s: author\'s display name */
            esc_attr( sprintf( __( \'Visit %s&#8217;s website\' ), get_the_author() ) ),
            get_the_author()
        );
    } else {
        return get_the_author();
    }
}
像这样使用它

<h5><span class="fn"><?php echo wpse_get_author_link_target_blank(); ?></span></h5>

结束

相关推荐

Wordpress author box

我有一个wordpress网站,在media temple上共享托管。当我的网站在共享主机上时,wordpress作者框不会出现。我已将我的网站从共享主机转移到我的服务器。在我转移我的网站后,我的博客页面上出现了双作者框。所有代码都相同。原因是什么?非常感谢。