对于我的wordpress主页,我有以下代码,但是当检查html中的实际结果时,标记不在内容周围。经过一番检查后,我发现php行存在呼应类别的问题,但我不知道如何纠正它。
<?php
// args query
$args = array(
'post_type' => 'post',
'posts_per_page' => 5,
'order' => 'DESC'
);
// custom query
$recent_posts = new WP_Query($args);
// check that we have results
if($recent_posts->have_posts()) : ?>
<ul class="article_list">
<?php
// start loop
while ($recent_posts->have_posts() ) : $recent_posts->the_post(); ?>
<li class="regular">
<a href="<?php echo get_permalink(); ?>">
<div class="text">
<p class="category"><?php echo the_category(); ?></p>
<h3 class="article_title"><?php echo mb_strimwidth(get_the_title(), 0, 80, '...'); ?></h3>
<p class="date"><?php echo get_the_date( 'Y-m-d' ); ?></p>
</div>
<div class="mask">
<img src="<?php the_post_thumbnail_url();?>" alt="" class="art_img">
</div>
</a>
</li>
<?php endwhile; ?>
</ul>
<?php endif;
// reset query
wp_reset_postdata();
?>
答案 0 :(得分:3)
WordPress有两种类型的post变量函数。 get_
函数将返回一个值,以便可以对其进行操作并随后将其打印到文档中。 the_
函数的作用相同,但是它们会自动将值打印到文档中,并通过任何适用的过滤器运行它。
注意:通常它们更像the_content()
和get_the_content()
的同义词,但是这些(imo)的命名不正确。
the_category()
只是一个回显get_the_category_list()
更改:
<p class="category"><?php echo the_category(); ?></p>
要:
<p class="category"><?php echo get_the_category_list(); ?></p>
或
<p class="category"><?php the_category(); ?></p>
那应该可以解决您的问题。现在,您正在回显已经回显输出的函数。
编辑:根据您的评论,我现在看到您的意思是<a>
标签是自己打印的。这是因为the_category()
和get_the_category_list()
在默认情况下输出链接列表。因此,您可以在现有<a href="<?php echo get_permalink(); ?>">
标签的内部 中链接类别,该标签是无效的HTML。链接中不能有链接。
您要么想通过strip_tags()
运行当前函数,要么使用诸如get_categories()
之类的其他类别函数并对其进行遍历