WP — Get posts by category?

I’m using this in my page template to get posts by their category:

<?php 
        if (is_page(19)){
            ?>
            <ul>
            <?php
                global $post;
                $args = array( 'category' => 'Testimonial' );
                $myposts = get_posts( $args );
                foreach( $myposts as $post ) :  setup_postdata($post); ?>
                    <li class="testimonial"><?php the_content(); ?></li><br/>
                <?php endforeach; ?>
            </ul>
        <?php } ?>

but it’s retrieving all posts instead. Not just the ones labeled Testimonial. Any idea what I’m doing wrong?

Related posts

Leave a Reply

5 comments

  1. add_shortcode( 'seriesposts', 'series_posts' );
    
    function series_posts( $atts )
    { ob_start();
    
    $myseriesoption = get_option( '_myseries', null );
    
    $type = $myseriesoption;
    $args=array(  'post_type' => $type,  'post_status' => 'publish',  'posts_per_page' => 5,  'caller_get_posts'=> 1);
    $my_query = null;
    $my_query = new WP_Query($args);
    if( $my_query->have_posts() ) {
    echo '<ul>'; 
    while ($my_query->have_posts()) : $my_query->the_post();
    echo '<li><a href="';
    echo the_permalink();
    echo '">';
    echo the_title();
    echo '</a></li>'; 
    endwhile;
    echo '</ul>'; 
    }
    wp_reset_query();
    
    
    
    
    return ob_get_clean(); }
    

    //this will generate a shortcode function to be used on your site [seriesposts]

  2. Create a taxonomy field category (field name = post_category) and import it in your template as shown below:

    <?php
              $categ = get_field('post_category');  
              $args = array( 'posts_per_page' => 6,
             'category_name' => $categ->slug );
              $myposts = get_posts( $args );
              foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
                //your code here
              <?php endforeach; 
              wp_reset_postdata();?>