我发布这个问题,因为我在网站上将作者信息添加到帖子英雄时遇到了一些麻烦。
我在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/
希望我提供足够的信息,并且可以帮助解决同样问题的人。
答案 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');