Intereting Posts
Формат содержимого содержимого из базы данных вне фильтров WordPress Запретить выбранные условия подниматься до вершины Адрес веб-сайта Переадресация на веб-сайт после попытки миграции Как изменить тему WordPress на один столбец? Uncaught ReferenceError: the_ajax_script не определен. Как это не определено? Как установить сценарий, если виджет отображается на странице? Ограничить загрузчик WP для определенных типов файлов только на страницах Meta Query возвращает неверное количество сообщений Пользовательский запрос с фильтром post_class с использованием current_post не работает реализовать отдельные шаблоны для 1 типа сообщения как найти идентификаторы пользователей всех комментаторов в сообщении Как распечатать частичный URL-адрес после #? Оптимизированные серверы WordPress – это просто трюк с продажами? Как работает перевод (gettext) для перевода файла конфигурации плагина? Как я могу это сделать?

Создание коротких кодов по таксономии

Проверьте этот код:

function slide_group() { register_taxonomy('Group', 'slides', array( 'hierarchical' => true /*visualizza come le categorie*/, 'label' => 'Group', 'query_var' => true, 'rewrite' => true));} add_action('init', 'slide_group', 0); function square_slider_template() { // Query Arguments $args = array( 'post_type' => 'slides', 'posts_per_page' => 5 ); // The Query $the_query = new WP_Query( $args ); // Check if the Query returns any posts if ( $the_query->have_posts() ) { // Start the Slider ?> <div class="flexslider"> <ul class="slides"> <?php // The Loop while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <li> <?php // Check if there's a Slide URL given and if so let's a link to it if ( get_post_meta( get_the_id(), 'square_slideurl', true) != '' ) { ?> <a href="<?php echo esc_url( get_post_meta( get_the_id(), 'square_slideurl', true ) ); ?>"> <?php } // The Slide's Image echo the_post_thumbnail(); // Close off the Slide's Link if there is one if ( get_post_meta( get_the_id(), 'square_slideurl', true) != '' ) { ?> </a> <?php } ?> </li> <?php endwhile; ?> </ul><!-- .slides --> </div><!-- .flexslider --> <?php } // Reset Post Data wp_reset_postdata(); } // Slider Shortcode function square_slider_shortcode() { ob_start(); square_slider_template(); $slider = ob_get_clean(); return $slider; } add_shortcode( 'slider', 'square_slider_shortcode' ); 

Этот код создает слайдер на основе пользовательского типа «слайдер», используя миниатюру. Я также создал обычную таксономию.
То, что я сделал бы, это создать цикл «foreach», основанный на таксономическом термине, который создает короткий код с названием таксономии ([дизайн], [разработка] и т. Д. ИЛИ [ползунок = дизайн], [ползунок = develop]), которые содержат только должности taxonomy_term.
Например, [дизайн] содержит / отображает только сообщение с таксономией проекта, [develop] содержит / отображает только сообщение с развитием таксономии и т. Д.

EDIT / UPDATE # 2

Я на этом шаге:

  function square_slider_shortcode( $atts = array(), $content = '' ) { $atts = shortcode_atts( array( 'type' => '00', // default type ), $atts, 'square_slider' ); // Sanitize input: $pid = sanitize_title( $atts['type'] ); // Output return square_slider_template( $pid ); } add_shortcode( 'slider', 'square_slider_shortcode' ); function square_slider_template( $pid = '' ) { $args = array( 'post_type' => 'slides', 'p' => $pid, ); ?> <?php // The Query $query = new WP_Query( $args ); // Check if the Query returns any posts if ( $query->have_posts() ) { // Start the Slider ?> <div class="flexslider"> <ul class="slides"> <?php // The Loop while ( $query->have_posts() ) : $query->the_post(); for ($i = 1; $i <= 10; $i++): $num_slide="slide_" . $i; $slide = get_field($num_slide); ?> <?php if (!empty($slide)): ?><li><img src="<?php echo $slide; ?>"></li> <?php endif; ?> <?php endfor; ?> <?php endwhile; ?> </ul><!-- .slides --> </div><!-- .flexslider --> <?php } // Reset Post Data wp_reset_postdata(); } 

Я решил таким образом создать петлю со слайдами, и я создам слайдер. Это не разумный способ или правильный способ, но он работает 🙂
UPDATE: все работает, но слайдер появляется всегда в верхней части страницы, независимо от положения внутри редактора.
Я попытался поместить его в другой [one_third][slider type="98"][/one_third][one_third_last]casual words[/one_third_last] например [one_third][slider type="98"][/one_third][one_third_last]casual words[/one_third_last] но он появляется за пределами тега div, как вы можете видеть на изображении введите описание изображения здесь

Solutions Collecting From Web of "Создание коротких кодов по таксономии"

Вы хотите определить потенциально огромное количество разных коротких кодов с одним и тем же обратным вызовом короткого кода?

Почему бы вам не определить один короткий код с атрибутом term? Например

 [sc term="london"] 

пс:

Я думаю, что ваша проблема заключается в части $tax_term->name , которая может быть такой же строкой, как City of London, и это не допустимое имя $tax_term->name . $tax_term->slug этого попробуйте $tax_term->slug , но я не думаю, что это хорошая стратегия!

Другая проблема заключается в том, что вы определяете функцию внутри цикла foreach. Это должно дать вам такую ​​ошибку, как: Fatal error: Cannot redeclare examples_shortcode() ...

Вы должны использовать WP_DEBUG в своем WP_DEBUG . Вот хорошая отправная точка.

Обновить:

Вы можете использовать, например:

 function square_slider_shortcode( $atts = array(), $content = '' ) { $atts = shortcode_atts( array( 'type' => 'sport', // default type 'nr' => 5, // default number of slides ), $atts, 'square_slider' ); // Sanitize input: $type = sanitize_title( $atts['type'] ); $nr = (int) $atts['nr']; // Output return square_slider_template( $type, $nr ); } add_shortcode( 'slider', 'square_slider_shortcode' ); 

где:

 function square_slider_template( $type = '', $nr = 5 ) { // Query Arguments $args = array( 'post_type' => 'slides', 'posts_per_page' => $nr, 'tax_query' => array( array( 'taxonomy' => 'slides', 'field' => 'slug', 'terms' => $type, ), ), ); // The Query $the_query = new WP_Query( $args ); // ... etc ... return $html; } 

Тогда ваш синтаксис короткого кода будет выглядеть следующим образом:

 [slider type="sport" nr="5"] 

где теперь вы можете изменить термин ( type ) и количество слайдов ( nr ) в соответствии с вашими потребностями.

Кажется, вам нужен короткий код закрытия.
http://codex.wordpress.org/Shortcode_API будет отличным чтением, чтобы начать.