我正在建立一个音乐课公司。我有一个主要的团队'每个音乐导师的页面都有一堆子页面,这里有一些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经验还处于青春期,因此任何有关我出错的地方的帮助或建议都将成为现实。谢谢!
答案 0 :(得分:0)
您似乎正在返回$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);