Функция WordPress get_post_meta()
потенциально может возвращать одно значение.
Чтобы обойти это, вы можете сделать это вместо вашей неисправной строки:
$postMeta = get_post_meta( $overlay_id, 'do_at_pagesexception_selected');
$except_in_posts = is_array($postMeta) ? array_filter($postMeta) : [$postMeta];
. что если get_post_meta возвращает отдельный результат вместо массива, он создаст массив с ним, в противном случае он будет делать array_filter()
, который вы хотели