get_post_meta при вызове WP_Query - PullRequest
       2

get_post_meta при вызове WP_Query

0 голосов
/ 10 октября 2019

Я использую вызов WP_Query для захвата офисов с моего веб-сайта WordPress.

$offices = new WP_Query([
    'post_type' => 'office',
    'post_status' => 'any',
    'posts_per_page' => -1,
]);

, который возвращает много результатов, таких как:

Array (  
    [0] => WP_Post Object  
        (  
            [ID] => 52856  
            [post_author] => 2
        )  
      )

Так что теперь яжелая перебрать условие вызова для получения метаданных, используя get_post_meta, но я не могу понять это.

Вот что у меня есть:

foreach ($offices as $office) {
    while ($offices->have_posts()) {
        get_post_meta($office, 'id', $office->id);
    }
}

Это, кажется, просто вызывает застревание бесконечного цикла.

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Да, это бесконечный цикл.

foreach ($offices as $office) {
    while ($offices->have_posts()) {
        get_post_meta($office, 'id', $office->id);
    }
}

Цикл foreach не имеет конца, так как с $ office ничего не делается. Вам нужен только цикл while. И аргументы не в правильном порядке для get_post_meta .

while ($offices->have_posts()) {

    get_post_meta( int $post_id, string $key = '', bool $single = false );

}
0 голосов
/ 10 октября 2019

Второй цикл кажется излишним.

foreach ($offices as $office) {
   $postMetaArray[$office->ID] = get_post_meta($office->ID, '', false);
}

Должен получить массив всех метаданных, связанных с его идентификатором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...