Как на странице записи (Single) вывести в сайд бар ссылки на все посты этой категории ?
Как на странице записи (Single) вывести в сайд бар ссылки на все посты этой категории ?
Для каждой категории ссылки внутри постов только на присвоенную категорию.
1 Ответ(ы)
Добавим виджет который будет выводить ссылки только на странице 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