Я новичок и только начал работать с 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'];
}
Задача ещё не решена.
Других решений пока нет …