Intereting Posts
Запустите javascript при успешном наборе признака Пользовательские сообщения с страницами WordPress с одинаковым URL-адресом Проверьте, существует ли почтовый идентификатор в таблице, а не только обновление вместо вставки новой строки Совместное использование общих функций (функций, частей шаблона) между плагинами и темами? Связать нескольких пользователей с настраиваемым типом сообщения Заблокирована панель управления WordPress после переезда сервера Отключение сочетаний клавиш TinyMCE в целом Различные шаблоны для постов всех подкатегорий категории Bootstrap не работает должным образом в functions.php Отобразить первое изображение из сообщения в ленте RSS Перечислите всю конкретную таксономию, если нет пули Тема континуума – длина выдержки разрешить пользователю создавать виджеты для виджета в виджетах Как изменить ссылку src на YouTube? Добавить javascript при публикации публикации

Пользовательский тип сообщения, который не соответствует категориям и тегам

Хорошо, у меня есть пользовательский тип сообщения в моем блоге, называемый видео, где я только отправляю видео. Здесь есть скин-кеп

введите описание изображения здесь

Справа – последнее сообщение из пользовательского типа сообщения, слева – видео, а под видео – дата и время, категория и теги. Но проблема в том, что он ошибается, теги, категории и дата. Как это исправить?

здесь приведен код этой страницы шаблона ниже

<?php /* Template Name: Single Videos */ ?> <?php get_header() ?> <div id="wrapper"> <div id="container"> <div id="contentfull"> <?php the_post() ?> <div class="entry-wide"> <center><h2 class="page-title2"><?php the_title() ?></h2> </center> <div class="entry-videoo"> <?php the_content() ?> <?php wp_link_pages('before=<div class="page-link">' . __( 'Pages:', 'wpbx' ) . '&after=</div>') ?> </div> <div id="videosidebar"> <?php $queryObject = new WP_Query( 'post_type=videos&posts_per_page=20&orderby=rand' ); // The Loop! if ($queryObject->have_posts()) { ?> <?php while ($queryObject->have_posts()) { $queryObject->the_post(); ?> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tbody> <tr> <td valign="top" width="1%"> <div id="videoimg"><a href="<?php the_permalink(); ?>" title="<?php printf(__( 'Read %s', 'wpbx' ), wp_specialchars(get_the_title(), 1)) ?>"> <?php the_post_thumbnail('video-post'); ?> </a></div> </td> <td valign="top" width="90%"> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </td> </tr> </table> <?php } ?> <?php } ?> </div> <div class="entry-info"> <div class="entry-meta-top"> <span class="entry-date"><font color="#e60288"><b><?php the_time(__('F jS, Y', 'kubrick')) ?></b></font></span> <span class="entry-meta-sep">|</span> <span class="entry-cat">Published in: <?php the_category(', '); ?> </span> <div id="sharing"> <span class='st_facebook_hcount' st_title='<?php the_title(); ?>' st_url='<?php the_permalink(); ?>' displayText='share'></span><span class='st_twitter_hcount' st_title='<?php the_title(); ?>' st_url='<?php the_permalink(); ?>' displayText='share'></span><span class='st_plusone_hcount' st_title='<?php the_title(); ?>' st_url='<?php the_permalink(); ?>' displayText='share'></span></div> </div> <br> <?php the_tags( __( '<span class="tag-links"><strong>More On:</strong> ', 'wpbx' ), ", ", "</span>\n" ) ?> <div class="entry-content"> <?php the_excerpt(); ?> </div> </div> <div class="entry-commm"> <?php comments_template(); ?></div> </div><!-- entry --> </div><!-- #contentfull --> </div><!-- #container --> </div><!-- #wrapper --> <?php get_footer() ?> 

Проблема заключается в том, как вы показываете видео на стороне. Где-то вы перебираете некоторые сообщения, чтобы создать этот список. Обратите внимание, что последнее сообщение в этом списке на скриншоте – это интервью с раз за разом – и это то, к чему относятся категории и теги.

Почему это происходит?

WordPress хранит глобальную переменную $post которая, как предполагается, является объектом post (object), и именно это использует функции WordPress для отображения таких вещей, как категории и теги и т. Д., Связанные с этим сообщением.

В этом случае глобальная $post была изменена при отображении списков боковых панелей. Вероятно, потому, что вы использовали WP_Query или (что еще хуже) query_posts ( см. Это предупреждение ), или вы использовали (рекомендуется) get_posts но по мере того как вы прошли цикл, вы объявили, что текущая публикация является глобальной (либо путем объявления global $post или с помощью the_post() ).

Итак, когда вы проходите цикл, вы перебираете глобальную переменную $post , пока не дойдете до последней – и затем она останется на этом посту. Вот почему вы видите категории и теги сообщения.

Как это исправить …

Это зависит от того, как вы сделали цикл. Вы можете использовать wp_reset_postdata если вы использовали объект WP_Query . Или, если вы использовали get_posts , не объявляйте сообщение глобальным и вместо этого передавайте его идентификаторы в функции. Кроме того, вы можете сохранить исходную global $post (т.е. главную почту) в переменной temp и сбросить ее после цикла. См. Пример этого .

Надеюсь, это поможет!

Благодаря steven, я нашел правильное место для входа в wp_reset_postdata

 <?php } ?> <?php } ?> 

и здесь вы добавляете код

 <?php } ?> <?php wp_reset_postdata() } ?>