Ошибки PHP в цикле WordPress foreach - PullRequest
1 голос
/ 23 июня 2019

Я создаю собственную тему и зацикливаю все типы записей с помощью флажков, но я также получаю пару ошибок 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 голосов
/ 23 июня 2019

Похоже, переменная $ 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
    }
}
0 голосов
/ 23 июня 2019

Добавление этого в foreach устраняет ошибки:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...