Intereting Posts
Заказывать сообщения по настраиваемому полю и, если пользовательское поле пусто, возвращает оставшиеся сообщения Как отобразить данные Пользовательский тип сообщения в поле «Выбрать» в Metabox? Как получить персонализированные данные WordPress в мета-панели продукта WooCommerce? Как изменить порядок пользовательских полей формы Вызов короткого кода в бэкэнд Выделение нескольких слов сразу Сортировка пользовательских почтовых запросов WordPress не работает header.php извлекает полноразмерное изображение для графического героя главной страницы перед записью в блоге Лучшие практики для страницы параметров темы на основе стиля / CSS? Белые пробелы в имени пользователя дают 404 на странице автора Как скопировать все «лишние» данные (меню, виджеты и т. Д.) Из одной темы в другую? Проблема кодирования символов после смены серверов Как добавить независимое от сервера внешнее правило перезаписи? Скрыть php-уведомления в Dashboard При нажатии «Импорт демонстрационных данных» возвращается страница Ошибка: Внутренняя ошибка сервера (500) в нижней части

Сортировка меток по первой букве или номеру

У меня есть 200 тегов, которые я создаю на веб-сайте каталога фильмов, например, в качестве примера

The Wolf of Wall Street (2013) Goodfellas (1990) Catch Me If You Can (2002) Monster (2003) The Bling Ring (2013) Devil's Knot (2013) The Frozen Ground (2013) Public Enemies (2009) American Gangster (2007) The Iceman (2012) 

мои требования

  1. Я хочу показать выбранный тег фильма, который начинается с «A или любого алфавита», когда пользователь нажимает на код ссылки, будет генерировать тег списка, начинающийся с «A».

  2. Показывать список фильмов через годы, как вы отметили выше, тег содержит годы в количестве, поэтому можно показывать теги через год, как пользовательский щелчок на 2003, который будет генерировать список.

перед публикацией здесь я искал все по сети: (ну, я нашел что-то вроде

 <?php query_posts('tag=$tag'); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div class="title"> <?php echo get_the_title ;?> </div> <?php endwhile; endif ;?> 

Solutions Collecting From Web of "Сортировка меток по первой букве или номеру"

Из того, что я могу прочитать в ваших комментариях (и ваш следующий вопрос), вы пытаетесь перехватить WHERE вашего запроса. Имя, name__like вы упомянули в своем другом вопросе, не будет работать для того, чего вы пытаетесь достичь. Предложение построено таким образом get_terms() (основная функция get_tags() ):

 if ( ! empty( $args['name__like'] ) ) { $where .= $wpdb->prepare( " AND t.name LIKE %s", '%' . $wpdb->esc_like( $args['name__like'] ) . '%' ); } 

Как вы можете видеть, это %YOURTERM% , поэтому он соответствует не только с самого начала, но и с самого конца. Короче говоря: это не то, что вы хотите .

После чтения источника это просто: вам нужно перестроить полный запрос. Для этого есть фильтр:

 $clauses = apply_filters( 'terms_clauses', compact( $pieces ), $taxonomies, $args ); 

Просто добавьте обратный вызов и измените свой запрос на $wpdb->esc_like( 'term' ).'%' :

 add_filter( 'terms_clauses', function( $sql, $taxonomies, $args ) { // rebuild your query here return $sql; }, PHP_INT_MAX -1, 3 ); 

Поскольку упорядочение сообщений по значению тегов не является обычным явлением, вы не можете упорядочить цикл по тэгам. Для этого вам придется использовать несколько циклов WP (или создать пользовательский запрос БД). Таким образом, вам нужен цикл foreach для каждого тега и внутри цикла цикла WP_Query. Что-то вроде этого:

 $tags = get_tags(); foreach ( $tags as $tag ) { $query = new WP_Query( array( 'tag' => $tag->term_id, 'orderby' => 'meta_value', 'order' => ASC ) ); while( $query->have_posts ) { // print posts } } 

Я не пробовал это, но что-то вроде этого должно работать.