我正在Wordpress中为特定页面模板构建一个metabox库。我在仪表板上有以下警告通知:
警告:in\\u array()要求参数2为array,在
警告针对代码行:if ( in_array( $post_type, $post_types ) ) {
public function add_meta_box( $post_type ) {
$post_types = apply_filters( \'sortable_wordpress_gallery_post_types\', array( \'post\' ) );
$post_types = apply_filters( \'sortable_wordpress_gallery_\' . $this->id . \'_post_types\', $post_types );
if ( in_array( $post_type, $post_types ) ) {
add_meta_box(
$this->id,
$this->title,
array( $this, \'render_meta_box_content\' ),
$post_type,
$this->context,
$this->priority
);
}
}
这是我在其中指定应在其中显示元框的页面模板的代码。
add_filter( \'sortable_wordpress_gallery_post-metabox_post_types\', \'first_gallery_only_on_page\' );
function first_gallery_only_on_page( $post_types ) {
global $post;
if(!empty($post)) {
$pageTemplate = get_post_meta($post->ID, \'_wp_page_template\', true);
if($pageTemplate == \'page-coworking.php\' ) {
return array( \'page\' );
}
}
}
我知道我的一个参数为null,但在使用它之前我找不到设置它的方法。非常感谢。
最合适的回答,由SO网友:Buttered_Toast 整理而成
首先你有这个密码
// no matter what the value here, you can forget about it (because in the next line of code you assing a new value to the same variable)
$post_types = apply_filters( \'sortable_wordpress_gallery_post_types\', array( \'post\' ) );
// only this really matters
$post_types = apply_filters( \'sortable_wordpress_gallery_\' . $this->id . \'_post_types\', $post_types );
秒中的值
$post_types
就是你要检查的。
现在是回调函数
你检查一下$post
为空,请执行一些代码并返回一个数组。但如果$post
不为空。
在fillers中,返回回调函数的第一个参数,因此在本例中,就在回调函数的右括号之前,需要返回$post_types
回调函数的完整示例
function first_gallery_only_on_page ($post_types) {
global $post;
if (!empty($post)) {
$pageTemplate = get_post_meta($post->ID, \'_wp_page_template\', true);
if ($pageTemplate == \'page-coworking.php\' ) {
return array( \'page\' );
}
}
return $post_types; // add this line
}