如何解决如何在 Wordpress 中编写自定义查询以获取由动态分类法过滤的自定义帖子类型
简介
我是一名平面设计师,对 PHP 一无所知,但在这种特殊情况下我需要亲自动手,我需要编码之神的帮助。 我一直在努力解决这个问题,阅读它并尝试一些东西,但我可能太菜了,无法弄清楚。
工具包
我有一个 Wordpress 网站,我正在使用 Elementor Pro 来构建它。 我正在使用插件“CPT-UI”来拥有我自己的自定义帖子类型,以及“CPT-onomies”来使用一个 CPT 作为另一个 CPT 的分类法。 如果我能够在“片段”插件中编写它,我可以从 Elementor 调用自定义查询。
情况
话虽如此,我将准确描述正在发生的事情: 我有一个“项目”CPT 和一个“设计”CPT,两者都是 CPT。同时,“项目”是与“设计”相关的分类法,这意味着我可以将属于同一个大“项目”的许多设计分组。 例如,如果我设计了可口可乐的标志并设计了带有该标志的名片,那么这两种设计都将被归入名为“新可口可乐标识”的分类法(也是 CPT)中。 因此,在“New Coca Identity”页面(实际上是应用于所有“项目”的动态模板)中,我可以获取所有将当前循环 ID(在本例中为“New Coca Identity”)指定为其分类法的设计。
应该是这样的(我相信)
这就是我想出来的......
// Create the action to call this query from Elementor
add_action('elementor_pro/posts/query/projects_designs_query',function($query)
{
// Get current meta Query
$meta_query = $query->get( 'meta_query' );
// If there is no meta query when this filter runs,it should be initialized as an empty array.
if ( ! $meta_query ) {
$meta_query = [];
}
// Append our meta query
$tax_query[] = [
'taxonomy' => 'projects','field' => 'term_id','terms' => 'HERE SHOULD BE THE DYNAMIC ID I GUESS',];
$query->set( 'meta_query',$meta_query );
} );
解决方法
我成功了!我将分享我是如何做的,以防其他人像我一样缺乏 php 知识。
add_action('elementor_pro/posts/query/projects_designs_query',function($query)
{
$post_id = get_the_ID();
$meta_query[] = [
'post_type' => 'designs','taxonomy' => 'projects','value' => $post_id,'compare' => 'in',];
$query->set( 'meta_query',$meta_query );
} );
这样做的目的是首先获取循环中当前帖子的 ID(在我的例子中是项目自定义帖子类型)。然后它获取属于同一项目(当前帖子)的所有帖子(具有自定义帖子类型设计)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。