Wordpress: trying to get posts by tag
Answer was found here - https://codex.wordpress.org/Template_Tags/get_posts
Following example displays posts tagged with 'jazz', under 'genre' custom taxonomy, using 'tax_query'
$args = array( 'tax_query' => array( array( 'taxonomy' => 'genre', 'field' => 'slug', 'terms' => 'jazz' ) ));$postslist = get_posts( $args );
So for you it will be
$args = array( 'posts_per_page' => 5, 'tax_query' => array( array( 'taxonomy' => 'post_tag', 'field' => 'slug', 'terms' => sanitize_title( $brand_name ) ) ) );$postslist = get_posts( $args );
Try this
$original_query = $wp_query;$wp_query = null;$args = array('posts_per_page' => 5, 'tag' => $brand_name);$wp_query = new WP_Query($args);if (have_posts()) : while (have_posts()) : the_post(); echo '<li>'; the_title(); echo '</li>'; endwhile;endif;$wp_query = null;$wp_query = $original_query;wp_reset_postdata();
In your code, try:
$query=new WP_Query(array('posts_per_page=5', 'tag' => $brand_name));
instead of:
$query=new WP_Query(array('posts_per_page=5', array('tag' => array($brand_name))));
For further details, see https://codex.wordpress.org/Class_Reference/WP_Query#Tag_Parameters(and as mentioned on a recent duplicate post).
Note: $brand_name could be an array of strings, or comma separated values, etc., and the above code should work.
Alternatively, try:
$myPosts = get_posts(array('tag' => $brand_name));