Intereting Posts
Как добавить короткий код, который создает соседний столбец текста в редакторе содержимого? Получить post_content с тегами <p>? Как совместно редактировать сообщения и кредитные редакторы соответственно Удаление стандартных ссылок на странице сообщений Слишком много категорий резко замедляют мой сайт добавить действие для отображения сообщений с использованием короткого кода Как размещать и управлять клиентами Увеличивает ли количество виджета влияние на производительность сайта? При входе в систему используйте другое меню Заменить атрибут__запуска в H2 в условном теге? Регулярное обновление персонализированного сообщения Функция, вызывающая запись в цикле больше (пустая) ng-repeat не возвращает список сообщений Неопределенный индекс: id, когда я сохраняю параметры Как удалить повторяющиеся элементы из get_the_terms_list?

Вопросы по сортировке переднего края

Пожалуйста, со мной, как с самообучением, и стараюсь учиться как можно больше. Я попытаюсь предоставить как можно больше информации, которую я узнал из исследования этой проблемы.

Моя цель / Проблема . Позволяет читателям сортировать категорию сообщений, используя либо ссылку с возможностью клика, либо выпадающую форму. На данный момент мы просто будем придерживаться интерактивных ссылок «Сортировать по дате» и «Сортировать по названию». Как это сделать? Каков наилучший способ сделать это?

Что у меня есть : база : благодаря пользователям в Stack Exchange я смог выполнить поиск страницы сообщений в категории, соответствующей названию страницы. Если страница называется Show Rants, она выплевывает все сообщения в категории Show Rants. Вот как это выглядит (спасибо Peter G).

Это связано с тем, что я хотел бы сохранить тот же формат поиска сообщений по имени страницы = cat name.

<?php $args = [ 'category_name' => get_queried_object()->post_name, 'order' => 'DESC', 'orderby' => 'date(post_date)' // Add any extra parameters you need ]; $q = new WP_Query( $args ); // Run the loop if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); get_template_part( 'content', get_post_format() ); } wp_reset_postdata(); } ?> 

В приведенном выше примере мы используем WP_Query, что важно для меня отметить (в основном для себя), потому что до этого я использовал query_posts.

Это результат одного типа сортировки на бэкэнд. Теперь я хочу сделать несколько заказов на лицевой стороне.

Вот методы, с которыми я столкнулся или попытался:

query_post : ранее я работал над сортировкой query_posts. Первая проблема заключается в том, что это query_posts! На этой неделе я узнал, что это определенно не тот маршрут, на который я хочу пойти. WP_Query намного лучше и безопаснее. Вот такой код, который у меня есть. Вторая проблема заключается в том, что она не вызывает вызовы из категории, на которой была названа страница (что является скорее проблемой)

 <?php $sort= $_GET['sort']; if($sort == "title"){ $order= "orderby=title"; } if($sort == "date"){ $order= "orderby=date"; } ?> <?php get_header(); ?> <div class="content-container"> <h2><?php the_title(); ?></h2> <a href="?sort=title">Sort By Title</a> <a href="?sort=date">Sort By Date</a> <?php query_posts($order.'&order=ASC'); ?> <ul> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <li> <a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li> <?php endwhile; endif; wp_reset_query();?> </ul> </div> 

Теперь, если бы я мог заставить это быть в WP_Query, тогда мы все можем установить. Кроме того, я все еще довольно ограничен, чтобы понять это. Это и будет моей следующей попыткой.

WP_Query: Франкенфинирование двух приведенных выше примеров вместе с тем, что я узнал в Codex, я создал код, который не удивительно не работает. Несмотря на то, что я знаю, что это абсолютно неправильно, я все равно отправлю его, так что избавитесь от насмешек. Я хотел бы знать, был ли я близок ВСЕ.

 <?php $args= [ 'category_name' => 'animoo-reviews', 'order' => 'DESC', 'orderby' => 'date(post_date)' ]; $A = new WP_Query( $args ); while ( $A->have_posts() ) { $A->the_post(); echo '<li>' .get_the_title() .'</li>'; } wp_reset_postdata(); /*instead of wp_reset_query?*/ /* 2nd Query Sort? */ $args2= [ 'category_name' => 'animoo-reviews', 'order' => 'ASC', 'orderby' => 'title' ]; $B = new WP_Query($args2); // Loop 2? while( $B->have_posts()) { $B->the_post(); echo '<li>' .get_the_title() .'</li>'; } //Restoring original post data wp_reset_postdata(); ?> 

Проблема в том, что это работает, но не так, как я думал, и я даже не знаю, как связать его, чтобы пользователь мог сортировать. Как я и должен был догадаться, он будет выходить из первых 6 сообщений в одном порядке сортировки, а затем вытаскивать еще шесть сообщений в другом порядке. Ближе, но не совсем так близко.

Edit: Woops, я понял, что это был просто пример Multiple Loop Codex. Я пытался подключить его к URL-адресам, но это не сработало. Я просто оставлю это здесь, потому что хочу показать, что я, по крайней мере, пытался что-то сделать с проблемой. Для category_name я всегда могу использовать get_queried_object-> post_name. Я просто упрощал это, пока я играл с ним раньше.

add_query_arg : В дни исследований я несколько раз наткнулся на эту опцию. В теории, как люди говорят об этом, это кажется легким. Укажите URL-адрес, который будет сортировать сообщения в одну сторону и другой URL-адрес, который будет сортировать сообщения другим способом. Мне также нужно манипулировать файлом functions.php. Я планирую заняться этим сегодня, когда посмотрю на другую проблему для моего проекта.

Было бы бесконечно оценено, сможет ли кто-нибудь показать мне, как это сделать. Я довольно новичок в этом, но я каждый день изучаю прыжки и ограничения. Иногда вещи кажутся мне не такими очевидными, как кажется другим (как, например, в Кодексе).

Еще раз, цель :

Позволяет читателям сортировать сообщения более чем одним способом. (Необязательно, но было бы здорово) Если сообщения могут поступать из категории, страница названа в честь.

Что я не хочу:

Плагин. Вы можете пойти вперед и предложить удобный плагин, который вы хотите, но мне действительно нужно изучить это с нуля. Захват плагина для всего лишь навредит моему обучению в начале.

Еще раз спасибо за ваше время.

Solutions Collecting From Web of "Вопросы по сортировке переднего края"

orderby умолчанию, поэтому мы всегда можем оставить это, если хотим заказать по дате. поэтому единственное, что нам нужно обнаружить, – это установить $_GET['sort'] и он будет равен заголовку.

здесь мы устанавливаем аргументы запроса для всех запросов и просто добавляем orderby если это заголовок:

 $args = array( 'category_name' => get_queried_object()->post_name, 'order' => 'DESC' ); if( isset( $_GET['sort'] ) && "title" == $_GET['sort'] ){ $args['orderby'] = 'title'; } $q = new WP_Query( $args );