我假设有一个为您的自定义帖子类型注册的自定义分类法。在这种情况下,您需要使用tax_query
的参数WP_Query
使用特定术语slug从自定义分类中获取帖子。
下面是一个示例代码,用于获取带有自定义术语的自定义post类型post。首先有一个helper函数,您可以将它放在functions.php
文件下面的几行演示了如何使用该函数。您需要更新分类名称,使其与实际名称相匹配,以使查询正常工作。
这个category_name
参数与分类法相关,分类法与Post类型相关。如果库帖子类型也使用默认类别作为其分类,则使用category
作为taxonomy
在下面
// in functions.php
function get_random_gallery_post_by_term( string $term ) {
// Setup args
$args = array(
\'post_type\' => \'gallery\',
\'post_status\' => \'publish\',
\'posts_per_page\' => 1,
\'orderby\' => \'rand\',
\'tax_query\' => array(
// Query post by custom taxonomy term
array(
// update your_gallery_taxonomy_name to match your actual taxonomy name
// You can find taxonomy name on your browser address line when you\'re on the taxonomy admin page
\'taxonomy\' => \'your_gallery_taxonomy_name\',
\'field\' => \'slug\',
\'terms\' => $term
)
),
);
// Execute query
$query = new WP_Query( $args );
// Return found post or false, if not found
return $query->posts ? $query->posts[0] : false;
}
// in some template file
$gallery_post = get_random_gallery_post_by_term( \'my-gallery-category\' );
// Do something with the post
if ( $gallery_post ) {
// Thumbnail, empty string if thumbnail not found
echo get_the_post_thumbnail( $gallery_post->ID, \'thumbnail\' );
// Content
echo wp_kses_post( $gallery_post->post_content );
}