WP_Query
没有一个内置的参数,用于根据帖子slug的一部分查询帖子,通常情况下,人们会根据帖子标签或类别搜索类似的帖子;但是,您可以将自定义参数与posts_where
hook 按slug的一部分查询类似的帖子。
一、 e.使用自定义SQL查询,然后使用挂钩将该查询添加到WP_Query
.
例如,在主题中functions.php
文件,添加以下内容:
add_filter( \'posts_where\', \'my_posts_where\', 10, 2 );
function my_posts_where( $where, $query ) {
if ( $value = $query->get( \'slug_starts_with\' ) ) {
global $wpdb;
$where .= $wpdb->prepare(
" AND {$wpdb->posts}.post_name LIKE %s",
$wpdb->esc_like( $value ) . \'%\'
);
}
return $where;
}
然后在你的
$args
, 添加自定义查询参数(名为
slug_starts_with
在上述示例中):
$args = array(
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'slug_starts_with\' => get_queried_object()->post_name,
);