在single.php中显示作者姓名(Wordpress)

时间:2013-05-28 17:16:35

标签: wordpress

我需要在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>

3 个答案:

答案 0 :(得分:6)

single.php,您最有可能打电话给the_post()。你会发现 WordPress template tags在这一行之后会正常工作。换句话说,您可以在the_author中使用single.php

修改:根据您在问题中更新的代码,您需要在single.php的顶部添加以下内容:

<?php if( have_posts() ) the_post(); ?>

另外,如果要在echo语句中使用作者姓名,请改用get_the_authorthe_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)

  • 在发布循环内的single.php中使用 the_author
  • 您可以使用 echo get_the_author 代替the_author。
  • 如果您需要带有存档链接的作者姓名,则可以使用 the_author_posts_link