WordPress — PHP-код работает для темы, не применимо при перемещении в плагин

Я новичок и только начал работать с PHP-кодом. Я создаю структуры боковой панели, которые должны быть добавлены на страницы через виджет, и я использую плагин для добавления пользовательских виджетов. В начале код, который я поместил здесь, работал, когда передавался в нижний колонтитул, заголовок или что-либо, относящееся к теме. Но когда я переместил его в свой пользовательский плагин, он показал другой результат:

if(have_posts()) {
$Cate = get_queried_object();
$related = get_posts( array(
'category__in' => $Cate->term_id,
'numberposts' => 8, ) );
if( $related ) echo '  <p>Posts in the same category:</p>';
foreach( $related as $post ) {
setup_postdata($post);
?><li> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php   ;}wp_reset_postdata()}

Результат в начале:

Сообщения в той же категории:

  • Описание рынка перевозок
  • Наши конкуренты
  • Общее введение транспорта

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

Сообщения в той же категории:

  • Описание рынка перевозок
  • Описание рынка перевозок
  • Описание рынка перевозок

Это 3 сообщения текущей категории. Когда я отображаю «var_dump ($ post)» в цикле foreach, он показывает правильную информацию о $ post в то время.

Это контент моего плагина (только основной контент)

// before and after widget arguments are defined by themes
echo $args['before_widget'];
if ( ! empty( $title ) )
echo $args['before_title'] . $title . $args['after_title'];

// This is where you run the code and display the output
if(have_posts()) {
$Cate = get_queried_object();
$related = get_posts( array(
'category__in' => $Cate->term_id,
'numberposts' => 8, ) );
if( $related ) echo '  <p>Posts in the same category:</p>';  foreach( $related as $post ) {
setup_postdata($post);
?><li> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php   ;wp_reset_postdata();}};
echo $args['after_widget'];
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector