WordPress foreach循环中的PHP错误

时间:2019-06-22 23:20:53

标签: php wordpress

我正在构建一个自定义主题并使用复选框循环所有帖子类型,但是我也遇到了一些PHP错误:

$post_types = get_post_types( array (
    'show_ui' => true,
    'show_in_menu' => true,
), 
    'objects'
);
foreach ( $post_types as $post_type ) { ?>
    <input type="checkbox" name="woo_custom_options[post_types][]" value="<?php echo $post_type->name; ?>" <?php if ($post_types && in_array($post_type->name, $woocustomoptions['post_types'])) echo 'checked';?> />: <?php echo $post_type->label; ?>
<?php
} 

我得到的错误是:

  

注意:未定义索引:post_types

  

警告:in_array()期望参数2为数组,给定为空

...都是相同的行号。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

将此内容添加到foreach中可以使错误消失:

$post_types = isset($woocustomoptions['post_types']) ? $woocustomoptions['post_types'] : '';

答案 1 :(得分:0)

看起来变量 $ post_types 为空,请尝试进行包装并进行验证。

$post_types = get_post_types( array (
    'show_ui' => true,
    'show_in_menu' => true,
),
    'objects'
);
if (isset($post_types)) {
    foreach ($post_types as $post_type) { ?>
        <input type="checkbox" name="woo_custom_options[post_types][]"
               value="<?php echo $post_type->name; ?>" <?php if ($post_types && in_array($post_type->name, $woocustomoptions['post_types'])) echo 'checked'; ?> />: <?php echo $post_type->label; ?>
        <?php
    }
}