在我的wordpress页面模板上我试图在我的参数数组中使用get_title()作为循环,但我不能让它返回任何帖子。
这是我最喜欢的地方;
<?php
$args = array(
'category_name' => 'the_title();'
);
$the_query = new WP_Query( $args ); ?>
<?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<div class="entry"><?php the_content(); ?></div>
<?php endwhile; else: ?>
<p>Sorry, there are no posts to display</p>
<?php endif; ?>
我无法在此页面上回复任何帖子,除非我手动输入我想要使用的类别的slug这是不理想的,因为页面slug将始终与post类别slug相同。
我背后的逻辑是,我不希望每个页面都有一个单独的页面与不同的猫,因为我将最终有数百页的模板。
任何帮助表示赞赏 干杯 乔恩
答案 0 :(得分:1)
您将the_title();
作为字符串传递给' '
。此外,the_title()
获取循环中对象的标题,而不是类别
您可以执行以下操作:
global $post;
$args = array('category_name' => $post->post_name);
答案 1 :(得分:0)
您已将the_title();
作为字符串传递,因此将被视为字符串,而不是函数,因此它不会返回标题。您可以使用全局变量$cat
,因此您的代码将是
<?php
global $cat;
$args = array('cat' => $cat);
$the_query = new WP_Query( $args ); ?>
<?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<div class="entry"><?php the_content(); ?></div>
<?php endwhile; else: ?>
<p>Sorry, there are no posts to display</p>
<?php endif; ?>