我在使用in\\u array()时遇到了一个错误。
在下面的代码中,我将$active\\u modules作为metabox的返回。从选项页获取值的io函数。此返回值是一个数组,但in\\u array()一直抱怨它不是。
警告:in\\u array()要求参数2为数组,bool给定
我已经在同一个文件中,在这个函数的正下方添加了第二个函数,它使用相同的数组值,将此函数转储到管理通知中进行测试。我不明白为什么第一个代码不能正常工作?任何指向正确方向的指针都将不胜感激!
<?php
if ( ! defined( \'WPINC\' ) ) {
die;
}
// Array of modules in plugin to be used for autoloader and settings page.
$all_modules = array(
array(
\'id\' => \'products\',
\'title\' => \'Products\',
\'path\' => \'kdc-products/kdc-products.php\',
),
array(
\'id\' => \'services\',
\'title\' => \'Services\',
\'path\' => \'kdc-services/kdc-services.php\',
),
array(
\'id\' => \'locations\',
\'title\' => \'Locations\',
\'path\' => \'kdc-locations/kdc-locations.php\',
),
);
// This gives an error: Warning: in_array() expects parameter 2 to be array, bool given...
$active_modules = rwmb_meta( \'modules\', array( \'object_type\' => \'setting\' ), \'kdc-site-functions\' );
foreach ( $all_modules as $module ) {
if ( in_array( \'products\', $active_modules, true ) ) {
require plugin_dir_path( __FILE__ ) . $module[\'path\'];
}
}
/**
* This function works fine with the same array values as above.
*
* @return void
*/
function sample_admin_notice__success() {
$all_modules = array(
array(
\'id\' => \'products\',
\'title\' => \'Products\',
\'path\' => \'kdc-products/kdc-products.php\',
),
array(
\'id\' => \'services\',
\'title\' => \'Services\',
\'path\' => \'kdc-services/kdc-services.php\',
),
array(
\'id\' => \'locations\',
\'title\' => \'Locations\',
\'path\' => \'kdc-locations/kdc-locations.php\',
),
);
$active_modules = rwmb_meta( \'modules\', array( \'object_type\' => \'setting\' ), \'kdc-site-functions\' );
foreach ( $all_modules as $module ) {
if ( in_array( \'products\', $active_modules, true ) ) {
$my_array[] = $module[\'id\'];
}
}
?>
<div class="notice">
<p>
<?php
print_r( $my_array );
?>
</p>
</div>
<?php
}
add_action( \'admin_notices\', \'sample_admin_notice__success\' );