Обзор функций
wp_parse_id_list( array|string $list )
$ list (array) (Обязательный) Список идентификаторов.
Возврат:(массив) Готовый массив идентификаторов.
Образец использования
Давайте начнем с простого массива идентификаторов записей:
$list = array( 1, 13, '11', 13 );
На первый взгляд вы заметите, что один из этих идентификаторов является строкой и что 13 дублируется. Итак, давайте запустим список через
wp_parse_id_list( $list );
Результат прохождения нашего списка таков :
array( 1, 13, 11 )
Как видите, результатом является массив целых чисел с совершенно уникальными значениями.
Вариант использования: MySQL IN Clause
Одним из отличных вариантов использования этой функции является пример на MySQL IN. Фактически, это основное использование в ядре WordPress.
Вот пример, извлеченный непосредственно из ядра WordPress:
Примечание. Это будет одинаково хорошо работать с идентификаторами записей, идентификаторами пользователей, комментариями или любым другим контентом, где требуется массив уникальных целых чисел.
Вариант использования: список идентификаторов шорткодов
Еще один вариант использования этой функции – это когда у вас есть шорткод, который принимает один или несколько идентификаторов сообщений. Например:
Теперь пользователь может использовать ваш шорткод так:
[ my_shortcode post_ids = "1" ]
или с несколькими идентификаторами, например:
[ my_shortcode post_ids = "1,2,3" ]
или, если пользователь не смог использовать запятые и использовал пробелы, это также сработало бы:
[ my_shortcode post_ids = "1 2 3" ]
или, если пользователь смешал подходы или даже добавил слишком много пробелов, это также сработало бы:
[ my_shortcode post_ids = "1, 2 3 4" ]
или, если пользователь дублирует идентификатор в списке, он будет автоматически удален:
[ my_shortcode post_ids = "1 2 3 3" ]
Есть только два сценария, в которых не удастся правильно очистить список идентификаторов. wp_parse_id_list()
Первый – когда пользователь добавляет начальные или конечные пробелы в список идентификаторов в виде строки:
[ my_shortcode post_ids = "1 2 3 " ]
Это добавит 0 к массиву, который, очевидно, не является действительным идентификатором записи.
Во-вторых, когда пользователь явно добавляет 0 в список идентификаторов:
[ my_shortcode post_ids = "0 1 2 3" ]
По этой причине я не использую сам по себе, но использую как указано здесь:
array_filter( wp_parse_id_list( $post_ids ) )
Это гарантирует, что 0 никогда не попадет в список идентификаторов.
Статья была переведена для блога TechBlog.SDStudio.top
Источник: wpscholar.com