我正在建立一个音乐课公司。我有一个主要的“团队”页面,每个音乐导师都有一堆子页面,上面有一些ACF内容。在网站上还有一个“课程”页面,这是一个单页,其中包含所有仪器,每个仪器打开一个模式框,在点击时显示一些信息,部分信息包括以下信息:
使用ACF我已经设置了一个初始关系选择框以启动所有内容,客户端可以进入课程页面并选择哪些导师教授哪种乐器,这很棒但是为了减少人为错误的机会我只喜欢我的客户能够从“团队”页面下的子页面中进行选择。
ACF文档确实提供了一些帮助,但这只是选择您当前正在编辑的特定页面的子父级 - found here
我已经尝试将函数编辑为这样,因此它只显示特定页面ID的子页面(在本例中为11)。
function my_relationship_query( $args, $field, $post_id ) {
// only show children of the current post being edited
$args = array(
'post_parent' => 11,
'post_type' => 'any',
'numberposts' => 10,
'post_status' => 'any'
);
$children = get_children( $args );
// return
return $args;
}
// filter for every field
add_filter('acf/fields/relationship/query', 'my_relationship_query', 10, 3);
但它没有做我想做的事,哈哈。我在绞尽脑汁。我的PHP经验还处于青春期,所以任何有关我出错的地方的帮助或建议都将成为现实。谢谢!
看起来你正在返回$args
而不是$children
。尝试这样的事情:
function my_relationship_query( $args, $field, $post_id ) {
$args = array(
'post_parent' => $post_id, // updated to use the current $post_id
'post_type' => 'any',
'numberposts' => 10,
'post_status' => 'any'
);
$children = get_children( $args );
// return
return $children; // updated to return $children
}
// filter for every field
add_filter('acf/fields/relationship/query', 'my_relationship_query', 10, 3);