Intereting Posts
Как отобразить alt теги в img src? RSS-лента cURL error 52? Как уменьшить количество запросов на запросы к базе данных для этой домашней страницы? Попытка получить свойство ошибки без объекта с эскизом Страница по умолчанию находится на странице архива и не указанном шаблоне Пользовательский тип сообщения Vs. данные в собственной таблице DBDelta: «таблица не существует» для таблицы, которая была только что создана Выделить текущую категорию в wp_list_categories Игнорировать сообщение по мета-значению в основном запросе Список иерархических списков с графом со связанным термином WooCommerce Добавить в корзину не работает Многостраничная переадресация WordPress на цифровой океан Должна ли тема премиум / для продажи проходить процесс утверждения WordPress? Как изменить отдельный виджет в дочерней теме? wp_generate_password устанавливает пароль, но не может войти с помощью созданного пароля

Почтовый слайдер с настраиваемым типом сообщения

Я пытаюсь создать слайдер сообщения, но я застрял на этом этапе.

Я создал таксономию с именем «слайд-шоу» и пользовательский тип «ползунок». В этом пользовательском почтовом типе «слайдер» я назначил таксономию «слайд-шоу»,

введите описание изображения здесь

Это прекрасно работает, но независимо от того, что я пробовал для запроса, я все еще не могу получить изображения, которые назначаются только для homesolide taxonomy ТОЛЬКО.

Есть ли лучший способ создать слайдер сообщения. Любые послабления будут оценены.

Вот мой код:

<?php function wms_slider_init() { $labels = array( 'name' => 'Slider', 'singular_name' => 'Slider', 'add_new' => 'Add Slider', 'add_new_item' => 'Add New Slider', 'edit_item' => 'Edit Slider', 'new_item' => 'New Slider', 'all_items' => 'All Sliders', 'view_item' => 'View Slider', 'search_items' => 'Search Sliders', 'not_found' => 'No Slider found', 'not_found_in_trash' => 'No Slider found in Trash', 'parent_item_colon' => '', 'menu_name' => 'Sliders' ); $args = array( 'labels' => $labels, 'description' => 'Holds our Slider poste specific data', 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'slider' ), 'capability_type' => 'post', 'has_archive' => false, 'hierarchical' => true, 'menu_position' => 5, 'supports' => array( 'title', 'editor', 'thumbnail', 'page-attributes') ); register_post_type( 'slider', $args ); } add_action( 'init', 'wms_slider_init' ); add_action( 'init', 'wms_create_slider_taxonomies', 0 ); //create SlideShow Category for the post type "slider" function wms_create_slider_taxonomies() { // Add new taxonomy, make it hierarchical (like categories) $labels = array( 'name' => _x( 'SlideShows', 'taxonomy general name' ), 'singular_name' => _x( 'SlideShow', 'taxonomy singular name' ), 'search_items' => __( 'Search Genres' ), 'all_items' => __( 'All SlideShows' ), 'parent_item' => __( 'Parent SlideShow' ), 'parent_item_colon' => __( 'Parent SlideShow:' ), 'edit_item' => __( 'Edit SlideShow' ), 'update_item' => __( 'Update SlideShow' ), 'add_new_item' => __( 'Add New SlideShow' ), 'new_item_name' => __( 'New SlideShow Name' ), 'menu_name' => __( 'SlideShow' ) ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'slideshow' ) ); register_taxonomy( 'slideshow', array( 'slider' ), $args ); } ?> 

У меня недостаточно комментариев для комментариев, но каков ваш фактический запрос?

Изменить : я не смог проверить это, но я думаю, что это сработает

  $args = array( 'post_type' => 'slider', 'meta_key' => '_thumbnail_id', // only pull sliders with images 'tax_query' => array( array( 'taxonomy' => 'slideshow', 'field' => 'slug', 'terms' => 'homeslide', 'operator' => 'IN' ) ) ) 

$query = new WP_Query( $args);

Затем следуйте нормальному циклу

Чтобы отобразить свой пользовательский тип сообщения в качестве слайдера, вам сначала понадобится настраиваемый WP_Query для индексации вашего типа сообщения, а затем некоторый код, который фактически отобразит его как слайдер. Вот пример с быстрыми барельефами с помощью Unslider

  <!-- Include Unslider JS --> <!-- YOU SHOULD INCLUDE WP JQUERY --> <script src="//unslider.com/unslider.min.js"></script> <!-- Set up the necessary JS for the slider --> <script type="text/javascript"> jQuery( document ).ready(function( $ ) { $('.banner').unslider({ // Add other arguments here speed: 500 }) }); </script> <!-- Output the HTML for the slider --> <?php // Do the custom WP_Query first $query = new WP_Query( array ( 'post_type' => 'slider', 'meta_key' => '_thumbnail_id', // only pull sliders with images 'tax_query' => array( array( 'taxonomy' => 'slideshow', 'field' => 'slug', 'terms' => 'homeslide', 'operator' => 'IN' ) ), ) ); // if we have posts, display them: if ( $query->have_posts() ) : ?> <!-- Some basic CSS for the slider --> <!-- Remember to add your own CSS styling --> <style type="text/css"> .banner { position: relative; overflow: auto; } .banner li { list-style: none; } .banner ul li { float: left; } </style> <!-- Some basic HTML for the slider Each slide is simply an <li> within a surrounding <ul> inside an encasing div --> <div class="banner"> <ul> <?php // While we have posts, output them as <li>'s while ( $query->have_posts() ) : $query->the_post(); ?> <li style="background-image: url(<?php echo wp_get_attachment_url( get_post_thumbnail_id($post->ID) ); ?>);"> <h1><?php the_title(); ?></h1> <p><?php the_content(); ?></p> </li> <?php endwhile; wp_reset_postdata(); ?> </ul> </div> <?php else : ?> <!-- ENTER HTML IF THERE'S NO SLIDES HERE --> <?php endif; ?> 

Помните, что для этого вам нужно кое-что сделать:

  • Убедитесь, что у вас есть хотя бы 2/3 сообщения для слайдера
  • Удостоверьтесь, что ваши сообщения находятся в таксономии для homeslide и имеют отличные изображения
  • Убедитесь, что в вашей теме установлен WordPress JQuery
  • Измените (и, вероятно, переместите) JS и CSS в приведенном выше коде по мере необходимости
  • Добавьте некоторый запасной код после else когда нет слайдов
  • Если вы решите придерживаться Unslider , проверьте все параметры диапазона

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