在Genesis中在循环外添加作者信息

时间:2016-11-06 15:52:25

标签: wordpress author genesis info

我发布这个问题,因为我在网站上将作者信息添加到帖子英雄时遇到了一些麻烦。

我在Wordpress中使用Genesis框架,所以我所做的就是从帖子中删除帖子信息并将其添加回帖子中。这一切都有效,除了作者姓名不再显示,因为它尚未在后期循环中提取。

    // Remove entry title
    remove_action( 'genesis_entry_header', 'genesis_do_post_title' );
    // Remove post info
    remove_action( 'genesis_entry_header', 'genesis_post_info', 12 );
    // Add page title
    add_action( 'hero-info', 'genesis_do_post_title' );
    // Add page info
    add_action( 'hero-info', 'genesis_post_info', 12 );

为了能够在帖子英雄中添加帖子作者信息,我查找了stackoverflow并找到了一个链接,OP可以通过为其创建一个短代码并在英雄中运行它来修复它-info

function author_shortcode() {
    global $post;
    $author_id=$post->post_author;
    the_author_meta( 'display_name', $author_id );
}
add_shortcode('author', 'author_shortcode');

然后将此短代码[作者]添加到

add_filter( 'genesis_post_info', 'custom_post_info' );
function custom_post_info( $post_info ) {
    if ( is_archive() || is_home() ) {
        $post_info = __( 'Article by [author] [post_author_posts_link] on [post_date] - [post_comments zero="Leave a Comment" one="1 Comment" more="% Comments" hide_if_off="disabled"]', 'tcguy' );
        return $post_info;
    }
}

现在结果如下:http://imgur.com/a/6lX5J 由于某种原因,它显示在错误的地方。谁知道这是怎么回事?

该网站可在此处找到:http://websforlocals.com/business/

希望我提供足够的信息,并且可以帮助解决同样问题的人。

1 个答案:

答案 0 :(得分:0)

你的ShortCode注册php代码是个问题。

添加短代码时,我们不应该选择ECHO,因为这样我们不会在我们想要的位置回显,而是在帖子内容的顶部回显。

所以总是在短代码函数中返回输出,然后回显短代码函数。

现在WordPress有一个函数约定,它回显结果并返回结果,即the_author_meta vs get_the_author_meta(你正在使用的第一个将显示/回显结果,但是get_ functions将返回值。)

我们需要在您的短代码注册区块中使用get_the_author_meta代替the_author_meta,它将解决您的展示位置问题。

function author_shortcode() {
global $post;
$author_id=$post->post_author;
return get_the_author_meta( 'display_name', $author_id );
}
add_shortcode('author', 'author_shortcode');