По какой-то причине я не могу заставить WP_Query возвращать значения настраиваемых полей сообщений. Я могу получить миниатюры сообщений, используя get_the_post_thumbnail($post->ID, array(50,50))
, но не могу получить данные пользовательских полей, используя get_post_meta($post->ID, $key, true)
.
Урезанная версия того, что я пытаюсь сделать:
<?php
$keys = array('Show Date','Birth Year','Origin');
echo '<table>';
echo '<tr><th>Title</th>';
foreach( $keys as $key ) {
echo '<th>' . $key . '<th>';
}
echo '</tr>';
$myquery = new WP_Query( 'post_type=post' );
if( $myquery->have_posts() ) : while( $myquery->have_posts() ) : $myquery->the_post();
$title = get_the_title();
echo '<tr><td>' . $title . '</td>';
$values = array();
foreach( $keys as $key ) {
$values[] = get_post_meta($post->ID, $key, true);
}
foreach( $values as $value ) {
echo '<td>';
echo $value;
echo '</td>';
}
echo '</tr>';
endwhile; endif;
echo '</table>';
?>
Также доступно здесь:
http://pastebin.com/at8S2THs
Даже если удалить весь несущественный код, я не могу заставить это работать. Я знаю, что вы можете использовать такие параметры, как meta_key
и meta_value
в запросе, чтобы сузить результаты, но я просто хочу отобразить все значения для ключей, которые я указываю, если они существуют, для каждого сообщения.
Любая помощь будет принята с благодарностью ...
** РЕШЕНИЕ НАЙДЕНО **
Просто нужно добавить global $post;
после начала цикла. Спасибо @Kimikaze на форуме поддержки WP за предоставленное решение!