Попытка помещать массив в запрос post__in '=> array () не работает

Небольшая проблема, у меня есть следующий код:

$purchaseprodid = $_GET['ids']; $args = array( 'post_type' => 'prizes', 'post__in' => array($purchaseprodid) ); query_posts($args); while (have_posts()) : the_post(); 

Я получаю разделенные запятыми цифры для id в URL-адресе, и они, похоже, не запрашивают сообщения. Если я вручную набираю идентификаторы, они работают без проблем, но просто не при использовании переменной $ purchaseprodid.

Есть идеи?

Благодаря!

Solutions Collecting From Web of "Попытка помещать массив в запрос post__in '=> array () не работает"

Вам нужно взорвать строку, полученную вами от $_GET['ids'] в массив, на тот момент, когда вы post__in строку с строкой post__in а не массив идентификаторов.

Пытаться

 $purchaseprodid = isset($_GET['ids']) ? explode(',',$_GET['ids']) : array(); 

Однако иногда вы можете столкнуться с трудностями, используя $_GET с WordPress, лучше использовать предоставленный API и зарегистрировать свою переменную, см. Этот вопрос .

Вместо этого вы можете использовать стандартную функцию WordPress wp_parse_id_list следующим образом:

 $purchaseprodid = isset( $_GET['ids'] ) ? wp_parse_id_list( $_GET['ids'] ) : array(); 

который проверяет, что входные данные еще не являются массивом, очищает дубликаты и преобразует тип каждого элемента массива в целое.

Дополнительная информация:

https://developer.wordpress.org/reference/functions/wp_parse_id_list/