Intereting Posts
Запрос нескольких категорий в цикле WP, если один из идентификаторов категорий динамически получен Обновление wpdb добавляет текущую временную метку не работает Индивидуальные шаблоны однотипных типов сообщений Элементы панели администратора активны только на странице плагина добавить скрипт карты изображения для публикации Не получать результат с помощью ajax на wordpress Являются ли WordPress Heartbeat API «ударами» пошатнутыми или они происходят одновременно для всех пользователей? Многократное одобрение редакторов перед публикацией? Заказ сообщений по пользовательской таксономии в области администрирования Как удалить старые комментарии по дате? WordPress Translate Explaination Почему все важные файлы в папке темы важны? отключить WordPress 404 для одной конкретной страницы / папки для получения фактических ошибок php WordPress Query Crashes Browser Проверено () дважды отображается в пользовательских полях

Как создать фильтруемый портфолио в WordPress?

Я создаю пользовательскую страницу Portfolio в WordPress, до сих пор мне удалось получить категории из пользовательской таксономии.

Теперь я хочу, когда вы нажимаете на опцию, он должен получать сообщение с настраиваемой категорией.

Это то, что у меня есть до сих пор:

<div class="row"> <div class="col-lg-12"> <div class="pull-right"> <button class="btn btn-small btn-default" data-toggle="portfilter" data-target="all">All</button> <?php $terms = get_terms("portfolio_categories"); // Consigue todas las categorias del custom taxonomy. $termsString .= $term->slug; $count = count($terms); //Cuantos categorias son? if ( $count > 0 ){ //Si es que hay mas de uno foreach ( $terms as $term ) { //Para cada termino: echo "<button class='btn btn-small btn-primary' data-toggle='portfilter' data-target='".$term->slug."'>".$term->name."</button>\n"; } } ?> </div> </div> </div> <br/> <div class="row"> <?php $portfolio_query = new WP_Query(array( 'post_type' => 'portfolios', 'order' => 'DESC', )); $terms_portfolio = get_the_terms( get_the_ID(), 'portfolio_categories'); ?> <?php if($portfolio_query->have_posts()) : while($portfolio_query->have_posts()) : $portfolio_query->the_post(); ?> <div class="col-md-4" data-tag="<?php echo $terms_portfolio[0]->slug; ?>"> <div class="thumbnail"> <?php if(has_post_thumbnail()) : ?> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('portfolio-page'); ?></a> <?php endif; ?> <div class="caption"> <a href="<?php the_permalink(); ?>"><h4><?php the_title(); ?></h4></a> </div> </div> </div> <?php endwhile; ?> <?php else : ?> <div class="alert alert-danger text-center"><p>Ningun portfolio encontrado</p></div> <?php endif; ?> </div> 

Может кто-нибудь проверить мой код? Я не могу показать категорию в data-tag od div col-md-4

Это текущий статус:

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

Результат этого в исходном коде следующий:

 <div class="col-md-4" data-tag=""></div> 

Solutions Collecting From Web of "Как создать фильтруемый портфолио в WordPress?"

Вы слишком рано устанавливаете $terms_portfolio . Вы используете get_the_terms( get_the_ID(), 'portfolio_categories') , но get_the_ID() не будет текущим портфелем в цикле, потому что $portfolio_query->the_post() еще не запущен.

Измените этот бит:

 <?php $portfolio_query = new WP_Query(array( 'post_type' => 'portfolios', 'order' => 'DESC', )); $terms_portfolio = get_the_terms( get_the_ID(), 'portfolio_categories'); ?> <?php if($portfolio_query->have_posts()) : while($portfolio_query->have_posts()) : $portfolio_query->the_post(); ?> <div class="col-md-4" data-tag="<?php echo $terms_portfolio[0]->slug; ?>"> 

Для того, чтобы:

 <?php $portfolio_query = new WP_Query(array( 'post_type' => 'portfolios', 'order' => 'DESC', )); if($portfolio_query->have_posts()) : while($portfolio_query->have_posts()) : $portfolio_query->the_post(); $terms_portfolio = get_the_terms( get_the_ID(), 'portfolio_categories'); ?> <div class="col-md-4" data-tag="<?php echo $terms_portfolio[0]->slug; ?>">