Как на странице записи (Single) вывести в сайд бар ссылки на все посты этой категории ?

Как на странице записи (Single) вывести в сайд бар ссылки на все посты этой категории ?

Для каждой категории ссылки внутри постов только на присвоенную категорию.

Добавить Комментарий

Добавим виджет который будет выводить ссылки только на странице single(записи).

 // добавим виджет
 add_action('widgets_init', 'my_widget');
 function my_widget() {
 register_widget('MY_Widget');
 }
class MY_Widget extends WP_Widget {
function MY_Widget() {
 $widget_ops = array('classname' => 'widget_cat_post', 'description' => __('Виджет вывода ссылок из категории', 'widget_cat_post'));
 $control_ops = array('width' => 300, 'height' => 350, 'id_base' => 'widget_cat_post');
 $this->WP_Widget('widget_cat_post', __('Виджет вывода ссылок из категории', 'widget_kurs'), $widget_ops, $control_ops);
 }
function widget($args, $instance) {
 // выводим только на странице single
 if (is_single()) {
 // получим id первой категории
 $categories = get_the_category();
 $category_id = $categories[0]->cat_ID;
 // если получили удачно категорию
 if(!empty($category_id)){
 // задаем нужные нам критерии выборки данных из БД
 $args = array(
 'posts_per_page' => -1,
 'cat' => $category_id
 );
 $query = new WP_Query($args);
 // Цикл
 if ($query->have_posts()) {
 while ($query->have_posts()) {
 $query->the_post();
 echo '<li>' . get_the_title() . '</li>';
 }
 } else {
 // Постов не найдено
 }
 /* Возвращаем оригинальные данные поста. Сбрасываем $post. */
 wp_reset_postdata();
 }
 }
 }
 // функция обновления информации в виджете
 function update($new_instance, $old_instance) {
}
 // вывод информации в блоке виджета в админке
 function form($instance) {
}
}
 

Данный код следует добавить в файл functions.php который расположен к коренной директории вашего шаблона.

В классе MY_Widget() есть пустые функции form() и update() — это если вы вдруг захотите сделать какие либо настройки. Возможно вам будет интересно посмотреть вопрос: http://onwp.ru/question/kak-v-wordpress-sozdat-svoj-vidzhet

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.