Intereting Posts
Лучшие правила структуры / перезаписи для достижения следующего URL-адреса Как использовать структуру _S WP 3.3.1 Не удается получить jQuery Datepicker для работы Отключить фид комментариев, но не другие Множественные Loops Breaking Pages Как отобразить SQL-запрос, который запускается в запросе? function.php ошибочно удален Использование оператора switch для изменения изображения в соответствии с последней цифрой идентификатора темы Пытаясь использовать WP_Query для отображения пользовательского типа сообщения Извлечь 1-е слово blogname / insert в середине новой строки Вставка пользовательской почты после публикации опубликованного типа публикации Как правильно заменить старое меню WordPress меню wp 3? Почему has_nav_menu возвращает false, когда get_registered_nav_menus показывает обратное? WordPress Hook для регистрации пользователя Пользовательский фильтр в admin редактировать пользовательский тип сообщения, отвечающий с недопустимым типом сообщения?

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

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

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

Что у меня есть : база : благодаря пользователям в 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. Я планирую заняться этим сегодня, когда посмотрю на другую проблему для моего проекта.

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

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

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

Что я не хочу:

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

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

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 );