我需要在Wordpress的single.php文件中显示帖子的作者。引用表明the_author();只能在循环中工作。
我一直在寻找其他论坛而没有找到。
有什么想法吗?
感谢。
编辑:
<div class="bar_info">
<?php echo "By: ".the_author(); ?>
<?php
foreach((get_the_category()) as $category) {
echo category->cat_name.', ';
}
?>
</div>
答案 0 :(得分:6)
在single.php
,您最有可能打电话给the_post()
。你会发现 WordPress template tags在这一行之后会正常工作。换句话说,您可以在the_author
中使用single.php
。
修改:根据您在问题中更新的代码,您需要在single.php
的顶部添加以下内容:
<?php if( have_posts() ) the_post(); ?>
另外,如果要在echo
语句中使用作者姓名,请改用get_the_author
。 the_author
实际上已经为你回复了。
答案 1 :(得分:1)
只要有一个$ post对象,你在技术上“在循环中” - 即使查询对象中只存在一个帖子,就是在single.php中的情况。只要你执行了the_post();模板标签是可访问的,因此 the_author(); 可以正常使用。如果您想指向作者档案 the_author_posts_link(); 将输出指向相应档案的链接以及锚文本中的作者姓名。
更新:
你的代码也错了。 the_author echos作者姓名,get_the_author()会将其视为变量。这可行:
<?php the_post(); ?>
<div class="bar_info">
By: <?php the_author(); ?>
<?php
foreach((get_the_category()) as $category) {
echo category->cat_name.', ';
}
?>
</div>
或者这也可以:
<?php the_post(); ?>
<div class="bar_info">
echo "By: " . get_the_author();
foreach((get_the_category()) as $category) {
echo category->cat_name.', ';
}
?>
</div>
答案 2 :(得分:0)