#php #wordpress
#php #wordpress
Вопрос:
Это вопрос WordPress. Я пытаюсь использовать немного кода, который отлично работает на моей домашней странице, в шаблонах моей внутренней страницы:
query_posts('cat=4');
// The Loop
echo '<div id="cal_details"><ul>';
while ( have_posts() ) : the_post();
$cal_date_j = date('j', intval(get_post_meta($post->ID, 'date_value', true)));
$cal_date_n = date('n', intval(get_post_meta($post->ID, 'date_value', true)));
$my_array[] = date('j, n', intval(get_post_meta($post->ID, 'date_value', true)));
$issetdate = get_post_meta($post->ID, 'date_value', true);
if (isset($issetdate)) {
echo '<li class="cal_event_li list_item_' . $cal_date_j . '_' . $cal_date_n . '">';
echo '<a href="' . get_permalink() . '">';
the_title();
echo '</a></li>';
}
endwhile;
echo '</ul></div>';
Однако, похоже, это не работает на внутренних страницах. Все ссылки на заголовки выводятся правильно, но часть get_post_meta будет напечатана неправильно.
Все элементы списка отображают что-то вроде <li class="cal_event_li list_item_1_1">
Я думаю, что, возможно, есть какая-то проблема с тем, как я пытался использовать $ post-> ID, но я не уверен, что здесь происходит. Есть идеи?
Ответ №1:
При использовании query_posts
вы должны вызвать global $post
, чтобы получить post_meta. Если вы вызываете только одну категорию, почему бы вам просто не использовать шаблон архива?
Также, если вы собираетесь использовать query_posts
, убедитесь, что вы сбросили послесловия к запросу, чтобы плагины, боковые панели и т.д. Все еще Могли Взаимодействовать с циклом для условных выражений и т.д..
global %post;
query_posts('cat=4');
// The Loop
//more stuff
endwhile;
wp_reset_query();
Комментарии:
1. Код предназначен для плагина, который загружает даты в календарь на боковой панели, вот почему я не могу использовать страницу архивирования.
Ответ №2:
попробуйте заменить $post-> ID на the_ID() на внутренних страницах. что-то вроде этого
query_posts('cat=4');
// The Loop
echo '<div id="cal_details"><ul>';
while ( have_posts() ) : the_post();
$cal_date_j = date('j', intval(get_post_meta(the_ID(), 'date_value', true)));
$cal_date_n = date('n', intval(get_post_meta(the_ID(), 'date_value', true)));
$my_array[] = date('j, n', intval(get_post_meta(the_ID(), 'date_value', true)));
$issetdate = get_post_meta(the_id(), 'date_value', true);
if (isset($issetdate)) {
echo '<li class="cal_event_li list_item_' . $cal_date_j . '_' . $cal_date_n . '">';
echo '<a href="' . get_permalink() . '">';
the_title();
echo '</a></li>';
}
endwhile;
echo '</ul></div>';