我有两种自定义的帖子类型:“quot;店面位置“;和;“服务”;
这些通过自定义分类法链接”;“位置”;
我正在为“创建帖子模板”;店面位置“;并希望显示“的列表”;“服务”;与任何给定店面关联的帖子。
我正在努力实现的目标:
“A”;店面位置“;伦敦邮政,分类为;“伦敦”;(“位置”分类法)。我想去伦敦。”;店面位置“;post显示全部“;“服务”;也被分类为;“伦敦”;(“位置”分类法)。然后,用户可以单击每个服务来阅读相关内容,因为这些都是帖子类型。
我正在尝试获取当前邮政(伦敦)的分类信息,并使用税务查询查找与该特定伦敦邮政共享相同分类的所有服务。
注意:这是针对Elementor中的WP\\U查询过滤器,因此Elementor查询的额外代码来自他们的教程here.
我是个新手,所以这里可能有个新手问题。我一直在尝试从stack exchange上的其他代码示例中找出这一点。如果有任何帮助,我将不胜感激!
add_action( \'elementor/query/my_filter\', function( $query ) {
//get the storefront-location post\'s location
$custom_terms = wp_get_post_terms($post->ID, \'location\');
if( $custom_terms ){
//hold tax query parameters
$tax_query = array();
// loop through locations and build a tax query
foreach( $custom_terms as $custom_term ) {
$tax_query[] = array(
\'taxonomy\' => \'location\',
\'field\' => \'slug\',
\'terms\' => $custom_term->slug,
);
}
// put all the WP_Query args together
$args = array( \'post_type\' => \'services\',
\'posts_per_page\' => -1,
\'tax_query\' => $tax_query );
// finally run the query
$loop = new WP_Query($args);
if( $loop->have_posts() ) {
while( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="listing-title"><?php the_title(); ?></div>
<?php endwhile;
}
wp_reset_query();
}
});
编辑:澄清一下,当添加到函数时,上面显示的代码似乎没有任何作用。php和在Posts小部件上使用“my\\u filter”时。因此,《伦敦邮报》显示了“所有”;“服务”;而不仅仅是按位置分类的服务”;伦敦"E;
SO网友:ppfeufer
几年前我也在做类似的事情,下面是我所做的,也许会有帮助。。。(已更改为您的用例)
$result = new WP_Query([
\'post_type\' => \'location\',
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'posts_per_page\' => -1, // all of them on one page
\'tax_query\' => [
[
\'taxonomy\' => \'services\',
\'field\' => \'id\',
\'terms\' => $custom_term->term_id,
\'include_children\' => true
]
]
]);
所以你已经很接近了。我注意到的是,你使用
$custom_term->slug
但它应该是
$custom_term->term_id
据我所知。