我正在尝试填充高级自定义字段的无线电字段,从多站点安装主博客中的自定义帖子类型中提取数据。
为了更好地理解,我制作了这个简单的流程图。
所以我创建了一个函数,以便从主博客中提取数据并在子网站上显示为广播项目。
该函数如下所示,我使用this作为参考
function getctas($field) {
$field['choices'] = array();
switch_to_blog(1);
$args = array(
'post_type' => 'location_icons',
'posts_per_page' => '-1',
);
$ctas = new WP_Query( $args );
while ( $ctas->have_posts()) {
$ctas->the_post();
$choices = get_field('icon',false);
$choices = explode("\n", $choices);
foreach( $choices as $choice ):
$field['choices'][ $choice ] = '<img src="'.$choice.'"/>';
endforeach;
}
restore_current_blog();
return $field;
}
add_filter('acf/load_field/name=call_to_action_icon', 'getctas');
我正确列出了选项(选项是图片),我成功从主博客中取出了icon
字段并将其作为广播标签和值。
我遇到的问题是,当我在孩子的页面模板上查询帖子时保存帖子后,我得到了正确的图片,但重复了博客1上帖子的标题。理想的是:
而我的意思是:
没有说明
正确的图像
等等。
如果您需要更多说明来帮我解决这个问题,我很乐意进一步解释。
答案 0 :(得分:1)
请在切换到主博客之前声明global $switched;
,如果在声明全局变量后它不起作用,似乎wp没有将其切换回当前博客,请试试这个
在切换到主要博客$current_site =get_current_blog_id();
一旦完成。使用
将其切换回来switch_to_blog( $current_site );
$GLOBALS['_wp_switched_stack'] = array();
$GLOBALS['switched'] = FALSE;