Wordpress尝试在循环数组中使用get_title()作为类别名称

时间:2016-03-07 07:31:45

标签: php wordpress loops

在我的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相同。

我背后的逻辑是,我不希望每个页面都有一个单独的页面与不同的猫,因为我将最终有数百页的模板。

任何帮助表示赞赏 干杯 乔恩

2 个答案:

答案 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; ?>