在我的一个小部件的“form”方法中,我进行了一个查询,为用户提供一些帖子供选择,如下所示:
<?php
$products = new WP_Query( array(
\'post_type\' => \'ys_product\',
\'order\' => \'ASC\',
\'orderby\' => \'title\',
\'meta_query\' => array(
array(
\'key\' => \'ys_product_status\',
\'value\' => \'ok\',
)
),
\'posts_per_page\' => - 1
) );
if ( $products->have_posts() ) {
while ( $products->have_posts() ) : $products->the_post();
$product = array(
\'name\' => the_title_attribute( array( \'echo\' => FALSE ) ),
\'ID\' => get_the_ID(),
);
$prod_array[] = $product;
endwhile;
wp_reset_postdata();
}
出于某种原因,使用该代码或多或少会出错。小部件工作,wp\\u查询填充适当的select,小部件显示并可以通过常规的小部件页面或自定义程序进行配置。
但是
出于某种原因,在customizer中,此小部件应用了以下css规则:
.customize-control-widget_form:not(.widget-rendered) {
opacity. 0.5
}
这当然会反过来产生:
此外,在customizer中,我不能再使用“添加新小部件”按钮,除非我删除此小部件(它在customizer.js中出现错误,抱怨TypeError: control is undefined
.
一切似乎都正常,但显然有些地方出了问题,因为我破坏了Customizer。有人知道这是怎么回事吗?
Update: 最后,我通过$wpdb将WP\\U查询替换为sql查询,现在一切正常。尽管如此,我还是想知道为什么它不能像它应该写的那样工作:()
谢谢和问候。(WP 4.1)