Пользовательские Типы Сообщений — Мета_Запрос, Где Значение Ключа Хранится В Виде Массива.

  • Автор темы LElectroHardl
  • Обновлено
  • 19, Oct 2024
  • #1

У меня возникли трудности с запуском этой функции. У меня происходит то, что информация о конкретных предметах одежды создается в пользовательском типе сообщения «Наряд». Я сделал это потому, что многие классы имеют одинаковые предметы одежды, поэтому проще создать один предмет одежды, а затем распределить его по разным классам. Пользовательские поля для одежды хранятся следующим образом:

 
  function get_class_attire($id){

$all_attire = array();

$args = array(

'post_type'     => 'attire',

'meta_query'=>array(

array(

'key'       => 'assign-classes',

'value'     => $id,

'compare'   => 'IN'

),

),

'numberposts'   => -1,

);

$the_query = get_posts($args);

foreach ( $the_query as $post ) : setup_postdata( $post );

$this_attire = array(

'attire-id' => $post->ID,

'cat' => get_post_meta($post->ID, 'attire-category', true),

'gender' => get_post_meta($post->ID, 'gender', true),

'assign-classes' => get_post_meta($post->ID, 'assign-classes', true),

'attire-name' => get_the_title($post->ID)

);

array_push($all_attire, $this_attire);

endforeach;

wp_reset_postdata();

return $all_attire;
}
 

В разделе «assign-classes» хранятся идентификаторы различных классов, которым требуется этот конкретный элемент одежды. Когда класс появляется на веб-странице, я хочу выполнить специальный запрос, чтобы получить только те предметы одежды, идентификатор класса которых хранится в этих «назначенных классах».

Это функция, которая не работает.

[9] => Array ( [attire-id] => 5680 [cat] => Leotard [gender] => girl [assign-classes] => Array ( [0] => 5576 [1] => 5577 ) [attire-name] => Lilac Skirt Eurotard 10127 )

Я чувствую, что проблема в том, что когда он идет на проверку, он просто видит Array для всех значений «назначить классы», а затем ничего не возвращает. Я не уверен, как заставить его просматривать значения в массиве для сравнения.

#пользовательские-типы-сообщений #мета-запрос

LElectroHardl


Рег
09 Dec, 2020

Тем
80

Постов
200

Баллов
620
  • 25, Oct 2024
  • #2

Благодаря помощи @JacobPeattie проблема заключалась в том, как сохранялись данные. Итак, вместо:

 
 for 

Это сейчас:

foreach

Единственное, что было странно, это то, что сначала я попробовал delete_post_meta($post->ID, "assign-classes"); for($i = 0; $i < count($_POST['assign-classes-all']); $i++){ add_post_meta( $post->ID, 'assign-classes', $_POST['assign-classes-all'][$i], false ); } loop which would not iterate more than one time. However, a if(isset($_POST['assign-classes'])) { update_post_meta( $post->ID, 'assign-classes', $_POST['assign-classes'] ); } петля будет.

 

InCite


Рег
23 Apr, 2008

Тем
55

Постов
183

Баллов
468
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно