简体   繁体   中英

Wordpress Trying to use get_title() in loop array as the category name

On my wordpress page template Im trying to use the get_title() in my arguments array for the a loop but i cant get it to return any posts.

This is where im up to;

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

Im unable to get any posts to return on this page unless i manually enter the slug for the category i want to use which is not ideal as the page slug will always be the same as the post category slug.

My logic behind this is that i dont want to have an individual page templeate for each page with the different cat as i will end up with hundreds of page templetes.

Any help appreciated Cheers Jon

You're passing the_title(); as a string do to ' ' . Also, the_title() gets title of the object in the loop, not of a category.
You can do the following:

 global $post; 
 $args = array('category_name' => $post->post_name);

You have passed the_title(); as a string, so will be treated as string, not a function, so it will not return title. You can use global variable $cat , So your code will be,

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM