Сортировка постов по терминам таксономии
есть таксономия "наклейки"
есть таксономия "позиционирование" со значениями 1 и 2 и 3
конструкция вывода
рубрика наклейки -- запись горизонтальны стикер а - значение термина 3 -- запись вертикальный стикер б - значение термина 1 -- запись горизонтальны стикер в - значение термина 3 -- запись вертикальный стикер г - значение термина 1 как просортировать наклейки по термину
на странице архива "наклейки" как отсортировать записи по slug таксономии "позиционирование" ?
не могу найти конструкцию, сейчас юзаю стандартную по произвольному полю
query_posts(array( 'orderby' => как можно сюда вставить сортировку по значению из "позиционирование" // none, ID, author, title name(slug), type, date, rand 'cat' => $cat_id, 'order' => 'ASC', // сортировка от первого до последнего 1 2 3 'meta_key' => $meta_key, 'paged' => $paged ));
Почему-то не дошло вот человек пророфлил
'orderby' => 'pax_scale' , тут таксу прописать , но у меня не завелось
query_posts(array( 'cat' => $cat_id, 'order' => 'ASC', // сортировка от первого до последнего 1 2 3 'meta_key' => $meta_key, 'orderby' => 'pax_scale' , // none, ID, author, title name(slug), type, date, rand 'paged' => $paged, 'posts_per_page' => $show_ppp ));
думал о таком, но пока нет сильной необходимости
add_action( 'publish_post', 'save_and_add_meta' ); function save_and_add_meta($post_id){ //Temporarily remove the action to avoid an infinite loop remove_action( 'publish_post', 'save_and_add_meta' ); // 2 $category_slug = get_the_terms($post_id, 'your_taxonomys_name')[0]->slug; //3 add_post_meta($post_id, 'cat_slug', $category_slug); //Add the action back in. add_action( 'publish_post', 'save_and_add_meta' ); }
В ВП невозможно сортировать по таксономии, потому что, если подумать это не имеет смысла.
Таксономии - это способы группировки постов. Таким образом, цель таксономии заключается в том, чтобы иметь термины в этой таксономии, которые общие для постов. Если в таксономии были термины, которые использовались только в одном сообщении каждый, то это сделало бы таксономию бесполезной. В тоже время если термины общие (как и должны быть), то сортировка не имеет смысла.
Но тем не менее, ты можешь сортировать по таксономии, создав свой хук и изменив итоговый SQL-запрос WP_Query. Сюда глянь, оно вроде по теме: http://scribu.net/wordpress/sortable-taxonomy-columns.html
Замечу, если тебе приходится так подходить к решению вопроса, то это означает что структура данных неправильно спроектирована. "Термины" в таксономии не являются фактическими "данными". Они просто являются метками для группировки постов.
Такая группировка - это цель таксономий. Тут больше подходит post meta. Потому что post meta использует ключи и значения для хранения информации. Таксономии на самом деле хранят только ключи, а их значения - это сообщения, сгруппированные вместе.
Возможно тебе стоит как-то пересмотреть подход, в будущем более правильная логика упростит поддержку кода. Можно конечно и так сделать, но по-моему так ты просто усложняешь поддержку кода, используя таксономии не по назначению.
Да со структурой все впорядке, сайт коллекционирования предметов и структура данных в каждой коллекции может сильно отличатся, а иногда самому приходится придумывать.
Сортировка иногда идет по номерам, иногда по названию, а как в этом случае нужно отсортировать посты сначала горизонтальные потом вертикальные.
пост мета не хочется перегружать, итак много хлама, вероятно придется автозаполнение данных подключить и выставить логику где это нужно а где нет...