5 эффективных методов запроса нескольких идентификаторов сообщений в WordPress

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

Метод 1: использование параметра postin
Это один из самых простых методов запроса нескольких идентификаторов сообщений в WordPress. Вы можете передать массив идентификаторов сообщений в параметр post
in, который будет получать сообщения, соответствующие этим идентификаторам.

$ids = array(1, 3, 5, 7); // Example post IDs
$args = array(
  'post__in' => $ids,
  'post_type' => 'post',
);
$query = new WP_Query($args);

Метод 2: использование параметра «include».
Как и в предыдущем методе, вы можете использовать параметр «include», чтобы указать массив идентификаторов сообщений для получения. Этот метод особенно полезен, если вы хотите получить сообщения из нескольких типов сообщений.

$ids = array(1, 3, 5, 7); // Example post IDs
$args = array(
  'include' => $ids,
  'post_type' => array('post', 'page'),
);
$query = new WP_Query($args);

Метод 3: запрос по слагам сообщений
Если вы предпочитаете работать с слагами вместо идентификаторов сообщений, вы можете использовать параметр «имя» для запроса сообщений. Этот метод удобен, если у вас есть готовые фрагменты сообщений.

$slugs = array('post-slug-1', 'post-slug-2', 'post-slug-3'); // Example post slugs
$args = array(
  'name' => $slugs,
  'post_type' => 'post',
);
$query = new WP_Query($args);

Метод 4: объединение идентификаторов сообщений с фильтром «posts_where».
В некоторых случаях вам может потребоваться объединить идентификаторы сообщений с дополнительными фильтрами. Фильтр posts_where позволяет изменять SQL-запрос и включать в него собственные условия.

$ids = array(1, 3, 5, 7); // Example post IDs
$args = array(
  'post_type' => 'post',
);
add_filter('posts_where', function ($where) use ($ids) {
  global $wpdb;
  $ids_str = implode(',', $ids);
  $where .= " AND {$wpdb->posts}.ID IN ({$ids_str})";
  return $where;
});
$query = new WP_Query($args);
remove_filter('posts_where', 'your_filter_function_name');

Метод 5: собственный SQL-запрос
Для опытных пользователей, знакомых с SQL, вы можете выполнить собственный SQL-запрос для получения сообщений на основе нескольких идентификаторов сообщений.

$ids = array(1, 3, 5, 7); // Example post IDs
global $wpdb;
$ids_str = implode(',', $ids);
$query = $wpdb->get_results("SELECT * FROM {$wpdb->posts} WHERE ID IN ({$ids_str}) AND post_type = 'post'");

В этой статье мы рассмотрели пять методов запроса нескольких идентификаторов записей в WordPress. Независимо от того, предпочитаете ли вы использовать встроенные параметры или собственные запросы SQL, эти методы помогут вам получить определенные сообщения на основе их идентификаторов. Поэкспериментируйте с этими методами в своих проектах WordPress и наслаждайтесь гибкостью, которую они предоставляют.