Intereting Posts

Как отобразить определенную категорию с помощью пользовательского запроса в WordPress?

Привет, я хочу отобразить определенную категорию из пользовательского запроса в WordPress. Мой код работает отлично, и он получает последние 4 сообщения, но теперь я хочу получить определенную категорию. Мой код ниже спасибо:

global $wpdb; $posts = $wpdb->get_results( 'SELECT ID, post_title AS title, post_excerpt AS excerpt FROM '.$wpdb->posts.' WHERE post_type = "post" AND post_status = "publish" ORDER BY post_date DESC LIMIT 4' ); 

Почему вы используете $wpdb для запроса из базы данных. WP_Query этого используйте WP_Query или get_posts . Вот как вы можете запросить базу данных WordPress и получить 4 последних сообщения из категории id 24.

 <?php $args = array( 'post_type' => 'post', 'cat' => 24, 'posts_per_page' => 4, 'ignore_sticky_posts' => 1 ); $my_query = new WP_Query( $args ); if ( $my_query->have_posts() ) : while ( $my_query->have_posts() ) : $my_query->the_post(); get_template_part( 'content', get_post_format() ); endwhile; endif; ?> 

Если вы все еще хотите сделать это с помощью $wpdb попробуйте это.

 <?php global $wpdb; $query = "SELECT p.*, terms.term_taxonomy_id, terms.term_id, terms.slug, terms.name from $wpdb->posts p INNER JOIN ( SELECT rel.object_id , rel.term_taxonomy_id, term.term_id, term.name, term.slug FROM $wpdb->term_relationships rel INNER JOIN (SELECT ttax.term_taxonomy_id, ttax.term_id, t.name, t.slug FROM $wpdb->term_taxonomy ttax INNER JOIN $wpdb->terms t ON t.term_id = ttax.term_id ) term ON rel.term_taxonomy_id = term.term_taxonomy_id ) terms ON p.ID = terms.object_id WHERE p.post_status = 'publish' AND p.post_type = 'post' AND terms.slug = 'my-category-slug'"; // just add what field that you wan to filter by (ie terms.id or terms.slug or terms.name ) $posts = $wpdb->get_results($query, OBJECT); echo "<pre>"; print_r($posts); 

или вы можете включить его в функцию