Intereting Posts
Получить все дочерние страницы страницы в качестве ссылки на них wp_set_object_terms () не заменяет термин, но создает новый Может ли Ajax Action зацепиться за wp-hook Внешний пользователь отправляет и просматривает контент Отправить письмо для подтверждения при регистрации пользователя Есть ли лучший, более эффективный способ получить сообщение id за пределами цикла? Цикл не показывает пользователям Почему я не могу редактировать определенные изображения из библиотеки WordPress Media? Показать родительскую категорию и подкатегорию Связывание текста в textarea пользовательского мета-окна Допустимый размер памяти 268435456 байт исчерпан (пытался выделить 64 байта)? Страница тегов страниц Как я могу загрузить jQuery перед загрузкой? Как разрешить 500 ошибок на странице после листинга? Пользовательский тип сообщения и пользовательская таксономия не связаны

Можно создать постоянную ссылку для сортировки с помощью meta_key?

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

Не уверен, что это правильный способ сделать это, но я хочу добавить массив query_posts к URL-адресу в форме query_arg. Это наш запрос:

query_posts( array( 'meta_key' => 'rank', 'orderby' => 'meta_value_num', 'order' => 'DESC' , 'paged' => $paged, 

Как использовать add_query_arg для передачи этого URL-адреса, чтобы повторно заказать сообщения с этим массивом meta_key / query_posts? Я попробовал это, похоже, это не изменяет порядок сообщений, здесь мне что-то не хватает.

 <a href="<?php echo $by_rank;?>"> Rank </a> <?php $by_rank= esc_url(add_query_arg(array('meta_key' => 'rank', 'orderby' => 'meta_value_num', 'order' => 'DESC'))); ?> 

Причина, по которой я хочу добавить строки запроса в строку URL-адреса, заключается в том, что пользователи могут сортировать сообщения на страницах категорий на основе meta_key / meta_value. Сортировка аналогичным образом? Orderby = date, за исключением мета-ключа.

Это можно сделать, верно? Потому что я серьезно начинаю думать, что это невозможно.

EDIT: – Пробовал это, это работает, чтобы сортировать сообщения по порядку ASC / DESC, но не по meta_key

 <?php $meta_key = (isset($_GET['meta_key'])) ? sanitize_text_field($_GET['meta_key']) : 'rank'; // use default value here '' $orderby = (isset($_GET['orderby'])) ? sanitize_text_field($_GET['orderby']) : 'meta_value_num'; // use default value here '' $order = (isset($_GET['order'])) ? sanitize_text_field($_GET['order']) : 'DESC'; // use default value here '' $by_rank = esc_url(add_query_arg(array( 'meta_key' => $meta_key, 'orderby' => $orderby, 'order' => $order ))); ?> <a href="<?php echo $by_rank;?>"> Rank </a> 

Я должен добавить, что если я добавлю массив query_posts непосредственно в шаблон страницы, он будет работать отлично.

Solutions Collecting From Web of "Можно создать постоянную ссылку для сортировки с помощью meta_key?"

Как насчет чего-то подобного?

 function wpse139657_orderby(){ if( isset($_GET['orderby']) ){ $order = $_GET['order'] or 'DESC'; set_query_var('orderby', 'meta_value_num'); set_query_var('meta_key', $_GET['orderby']); set_query_var('order', $order); } } add_filter('pre_get_posts','wpse139657_orderby'); 

Таким образом, вы можете позвонить своим URL-адресам с помощью ?orderby=rank и он должен сделать трюк. У вас также может быть необязательный параметр order , если вы хотите его реализовать.