Intereting Posts
get_query_var («страница») пуст, если страница равна 1 Проблема с комментариями в блоге Ошибка при сохранении динамических полей Обновить версию jquery Как добавить пользовательский новый опубликованный счетчик сообщений в верхней части сайта WordPress Получение ошибки stripos при попытке добавить классы меню Добавление настраиваемого поля и запросов из столбца Условное отображение ссылок в виджетах do_action в заголовке, добавить действие позже? как я могу избавиться от ссылок и всех связанных с ними элементов меню в admin ui? Показать родительские категории и подкатегории, но не категории больших детей Я не могу настроить пользовательские виджеты после перемещения веб-сайта WordPress WordPress работает только в директории с именем «wordpress» Плагин предотвращает работу кода Как вручную указать текущую активную страницу с помощью wp_nav_menu ()

Как я могу получить сообщения из индивидуального типа сообщений на одной странице с боковой панели для отображения на странице?

У меня есть пользовательский тип сообщения, называемый storylist, который выполняется как плагин для виджета боковой панели. В списке пользовательских записей типа сообщений отображаются списки других пользовательских типов сообщений и отображаются на боковой панели. Точно так же, как сообщения отображаются на боковой панели, мне нужен тот же список, который в этом случае отображается «горячие темы» на странице при нажатии кнопки «просмотреть больше». Лучшее, что я получил, это архив всех сообщений в сюжетном списке, но когда вы нажимаете на них, например, на горячие темы, вы попадаете на URL-адрес http: // site / storylist / hot-themes , что является правильным URL-адресом, но это пустой и только показывает название страницы. Любые предложения о том, как создавать эти сообщения, отображаются в горячих точках?

Вот код, чтобы он отображался в виджетах:

<?php // Prevent loading this file directly defined( 'ABSPATH' ) || exit; class ChemTabs extends WP_Widget { function __construct() { parent::__construct( 'tabs', _('Tabs Widget'), array( 'description' => _('A tabs widget.'), )); } private function ce_getPostClass($style, $index) { switch ($style) { case 'first-up': if ( $index == 0 ) return 'first-up'; else return 'list-type'; break; default: return $style; } } private function ce_has($listStyle, $index, $post) { $class = $this->ce_getPostClass($listStyle, $index); $has = array( 'thumb' => false, 'terms' => true, 'date' => true, 'content' => false, 'excerpt' => false, 'title' => true, 'video' => false, 'webinarDate' => false ); switch ($class) { case 'first-up': $has['thumb'] = true; $has['excerpt'] = true; break; case 'list-type': $has['terms'] = false; break; case 'thumblist': $has['thumb'] = true; break; case 'single': // no need for this anymore probably $has['content'] = true; break; } switch ($post->post_type) { case 'video': $has['video'] = true; break; case 'webinar': $has['webinarDate'] = true; break; } return $has; } public function widget( $args, $instance ) { global $post; $instance['tab_1_title'] = isset($instance['tab_1_title'])?$instance['tab_1_title']:'Tab 1'; $instance['tab_2_title'] = isset($instance['tab_2_title'])?$instance['tab_2_title']:'Tab 2'; $instance['storylist_id_1'] = isset($instance['storylist_id_1']) ? $instance['storylist_id_1'] : ''; $instance['storylist_id_2'] = isset($instance['storylist_id_2']) ? $instance['storylist_id_2'] : ''; $instance['n'] = isset($instance['n']) ? $instance['n'] : 4; $title = isset($instance['title'])?$instance['title']:''; $type = isset($instance['type'])?$instance['type']:'color'; $class = isset($instance['class'])?$instance['class']:'brand-primary'; // Post list configuration // Note: posts temporarily rendered with ajax $list_style = isset($instance['listStyle'])?$instance['listStyle']:'thumblist'; $list_post_type = isset($instance['post_type'])?$instance['post_type']:'post'; $list_filter = isset($instance['filter'])?$instance['filter']:'{}'; $list_display = isset($instance['display'])?$instance['display']:5; $list_channel = isset($instance['channel'])?$instance['channel']:0; $list_division = isset($instance['division'])?$instance['division']:0; $readmore = isset($instance['readmore'])?$instance['readmore'] : ''; $list_args1 = array( "post_type" => "any", "post__in" => get_post_meta($instance['storylist_id_1'], 'storylist', true), "orderby" => "post__in" ); $posts1 = new WP_Query(); $posts1 = $posts1->query($list_args1); $list_args2 = array( "post_type" => "any", "post__in" => get_post_meta($instance['storylist_id_2'], 'storylist', true), "orderby" => "post__in" ); $posts2 = new WP_Query(); $posts2 = $posts2->query($list_args2); // Note: posts temporarily rendered with ajax echo $args['before_widget']; $instance['tab_2_title'] = get_the_title($instance['storylist_id_2']); //@TODO: Use get_template_part('content/post', $modifier); on tabs too. ?> <div class="module tabs"> <div class="striped striped-gray"> <!-- Nav tabs --> <ul class="nav nav-tabs nav-justified" role="tablist"> <li class="active"> <a href="#tab-pane-1" role="tab" data-toggle="tab"> <h2 class="h4"><?= $instance['tab_1_title'] ?></h2> </a> </li> <li> <a href="#tab-pane-2" role="tab" data-toggle="tab"> <h2 class="h4"><?= $instance['tab_2_title'] ?></h2> </a> </li> </ul> <!-- Tab panes --> <div class="tab-content"> <div class="tab-pane active" id="tab-pane-1"> <div class="post-list no-c-paginator" max="<?= $instance['n'] ?>"> <?php $n = 0; foreach((array)$posts1 as $post): setup_postdata($post); $n++; if ( $n % 3 == 1) { ?> <div class="no-c-container<?php echo $n == 1 ? ' active' : '';?>"> <?php } ?> <article class="article thumblist no-c-paginator-item"> <!-- thumbnail --> <?php echo the_post_thumbnail('cm_thumb', array('class' => 'img-thumbnail pull-left', 'style' => 'margin-right: 0.5em;')) ?> <header> <!-- terms --> <?php if (!empty($terms) ): ?> <p class="terms"> <a href="<?= $terms[0]['link'] ?>"><?= $terms[0]['name'] ?></a> </p> <?php endif; ?> <!-- title --> <h3 class="title"><a href="<?php echo the_permalink(); ?>"><?php echo apply_filters('the_title', the_title()); ?></a></h3> <!-- Time --> <div class="date-author"> <?php include(locate_template('UI/byline.php')); ?> <span class="topic"><?php echo cm_get_single_topic() ?></span> </div> </header> <div class="clearfix"></div><!-- to clear the thumbnail's left floating --> </article> <?php if ( $n % 3 == 0) { ?> </div> <?php } endforeach; wp_reset_postdata(); if ( $n % 3 != 0) { ?> </div> <?php } ?> <?php if($readmore): ?> <div class="actions"> <button href="<?php echo $readmore; ?>" class="btn btn-primary btn-xs">View More</button> </div> <?php endif; ?> </div> <div class="actions"> <button class="btn btn-primary prev-item" disabled="disabled"><i class="fa fa-chevron-circle-left"></i> Prev</button> <button class="btn btn-primary next-item">Next <i class="fa fa-chevron-circle-right"></i></button> </div> </div> <div class="tab-pane" id="tab-pane-2"> <div class="post-list no-c-paginator" max="<?= $instance['n'] ?>"> <?php $n = 0; foreach((array)$posts2 as $post): $n++; if ( $n % 3 == 1) { ?> <div class="no-c-container<?php echo $n == 1 ? ' active' : '';?> "> <?php } ?> <article class="article thumblist no-c-paginator-item"> <!-- thumbnail --> <?php echo get_the_post_thumbnail($post->ID, 'cm_thumb', array('class' => 'img-thumbnail pull-left', 'style' => 'margin-right: 0.5em;')) ?> <header> <!-- terms --> <?php if (!empty($terms) ): ?> <p class="terms"> <a href="<?= $terms[0]['link'] ?>"><?= $terms[0]['name'] ?></a> </p> <?php endif; ?> <!-- title --> <h3 class="title"><a href="<?php echo get_permalink($post->ID); ?>"><?php echo apply_filters('the_title', $post->post_title); ?></a></h3> <!-- Time --> <div class="date-author"> <time datetime="<?php the_time('c'); ?>" pubdate="pubdate" ><?php the_time('F j, Y'); ?></time> <?php include(locate_template('UI/byline.php')); ?> <span class="topic"><?php echo cm_get_single_topic() ?></span> </div> </header> <div class="clearfix"></div><!-- to clear the thumbnail's left floating --> </article> <?php if ( $n % 3 == 0) { ?> </div> <?php } endforeach; if ( $n % 3 != 0) { ?> </div> <?php } ?> <?php //if($readmore): ?> <div class="actions"> <a href="<?php echo CFS()->get('view_more_link', 210639); ?>" class="btn btn-primary">View More</a> </div> <?php //endif; ?> <!--<div class="actions"> <button class="btn btn-primary prev-item" disabled="disabled"><i class="fa fa-chevron-circle-left"></i> Prev</button> <button class="btn btn-primary next-item">Next <i class="fa fa-chevron-circle-right"></i></button> </div>--> </div> </div> </div> </div> </div> <?php echo $args['after_widget']; } public function form( $instance ) { $instance['tab_1_title'] = isset($instance['tab_1_title'])?$instance['tab_1_title']:'Tab 1'; $instance['tab_2_title'] = isset($instance['tab_2_title'])?$instance['tab_2_title']:'Tab 2'; $instance['n'] = isset($instance['n'])?$instance['n']:4; $sl_posts = get_posts(array( 'posts_per_page' => -1, 'post_type' => 'storylist' )); ?> <h5>Tab 1</h5> <p> <label for="<?php echo $this->get_field_id( 'tab_1_title' ); ?>"><?php _e( 'Title:' ); ?></label> <input class="widefat" id="<?php echo $this->get_field_id( 'tab_1_title' ); ?>" name="<?php echo $this->get_field_name( 'tab_1_title' ); ?>" type="text" value="<?php echo esc_attr( $instance['tab_1_title'] ); ?>"> </p> <p> <label for="<?php echo $this->get_field_id( 'storylist_id_1' ); ?>"><?php _e( 'Story List:' ); ?></label> <select id="<?php echo $this->get_field_id( 'storylist_id_1' ); ?>" name="<?php echo $this->get_field_name( 'storylist_id_1' ); ?>"> <?php if (count($sl_posts)) { foreach($sl_posts as $storyList) { $selected = ($instance['storylist_id_1'] == $storyList->ID ? "selected='selected'" : ""); echo "<option value='{$storyList->ID}' {$selected}>{$storyList->post_title}</option>"; } } else { echo "<option value='0'>"._('No Story Lists Found')."</option>"; } ?> </select> </p> <!-- Number of items to show --> <p> <label for="<?php echo $this->get_field_id( 'n' ); ?>"><?php _e( 'Number of items to show at once:' ); ?></label> <input id="<?php echo $this->get_field_id( 'n' ); ?>" name="<?php echo $this->get_field_name( 'n' ); ?>" type="number" min="0" step="1" value="<?php echo intval($instance['n']) ?>"> </p> <h5>Tab 2</h5> <p> <label for="<?php echo $this->get_field_id( 'tab_2_title' ); ?>"><?php _e( 'Title:' ); ?></label> <input class="widefat" id="<?php echo $this->get_field_id( 'tab_2_title' ); ?>" name="<?php echo $this->get_field_name( 'tab_2_title' ); ?>" type="text" value="<?php echo esc_attr( $instance['tab_2_title'] ); ?>"> </p> <p> <label for="<?php echo $this->get_field_id( 'storylist_id_2' ); ?>"><?php _e( 'Story List:' ); ?></label> <select id="<?php echo $this->get_field_id( 'storylist_id_2' ); ?>" name="<?php echo $this->get_field_name( 'storylist_id_2' ); ?>"> <?php if (count($sl_posts)) { foreach($sl_posts as $storyList) { $selected = ($instance['storylist_id_2'] == $storyList->ID ? "selected='selected'" : ""); echo "<option value='{$storyList->ID}' {$selected}>{$storyList->post_title}</option>"; } } else { echo "<option value='0'>"._('No Story Lists Found')."</option>"; } ?> </select> </p> <?php } public function update( $new_instance, $old_instance ) { $instance = array(); $instance['tab_1_title'] = isset($new_instance['tab_1_title'])?$new_instance['tab_1_title']:'Tab 1'; $instance['tab_2_title'] = isset($new_instance['tab_2_title'])?$new_instance['tab_2_title']:'Tab 2'; $instance['storylist_id_1'] = isset($new_instance['storylist_id_1']) ? (int)$new_instance['storylist_id_1'] : 0; $instance['storylist_id_2'] = isset($new_instance['storylist_id_2']) ? (int)$new_instance['storylist_id_2'] : 0; $instance['n'] = isset($new_instance['n']) ? (int)$new_instance['n'] : 4; return $instance; } } add_action( 'widgets_init', function(){ register_widget( 'ChemTabs' ); }); 

Solutions Collecting From Web of "Как я могу получить сообщения из индивидуального типа сообщений на одной странице с боковой панели для отображения на странице?"

Кажется, вам просто нужно создать свои шаблоны типа post. В архиве сообщений storylist будет отображаться шаблон с именем archive-storylist.php для отображения сообщений.

Один пост типа storylist попытается использовать single-storylist.php для отображения этой записи.

В любой ситуации, если эти файлы не существуют, WordPress следует за потоком иерархии шаблонов, чтобы найти следующий подходящий шаблон.

Хорошую информацию о процессе можно найти в WP Codex здесь: https://codex.wordpress.org/Post_Type_Templates