数周以来一直在努力寻找解决问题的方法。
案例:
我有一个名为:design
的自定义帖子类型。该CPT有一个名为 thematique 的自定义字段(由ACF插件制作)。我为design
的类别创建了相同的自定义字段( thematique )。
预期行为:
我希望每当我们将get_posts()
或WP_Query
设为空白时,设计的 thematique 字段为空,它都应该继承其类别的 thematique 。>
我已经研究了pre_get_posts
钩子,但不确定如何处理。
有人有主意吗?
在此先感谢您的帮助!
答案 0 :(得分:0)
@Ali_k
我不确定如何去做。我需要类似的东西:
// Designs Thematique priority mechanic
function design_thematique_priority($query){
if($query->query['post_type'] == "design"){
foreach($query->posts as $post){
if($post->thematique == ""){
$post->thematique = $post->category->thematique;
}
}
}
}
add_filter( 'pre_get_posts', 'design_thematique_priority' );
但是我不认为可以使用任何循环来循环浏览pre_get_posts
中的帖子,对吗?
答案 1 :(得分:0)
您可以通过简单的方法执行此操作,并在WP查询中可以找到每个返回项目的格式,并添加以下内容:
<?php $thematique = get_field('thematique'); //Gets current posts value of fiels
<?php if (empty($thematique)){ //Checks if the field is empty, if so do the following
$postCat = get_the_category(); //Get current posts category ID
$catID = 'category_' . $postCat; //Merge category ID and needed string for ACF
$thematique = get_field('thematique', $catID); //Updated the value of $thematique with categories value
}?>
尽管未经测试,但这确实应该起作用,因为ACF表示要从类别中获取价值。找出more here。