Случайные Таксономии на Почте - PullRequest
0 голосов
/ 27 декабря 2018

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

В некоторых магазинах есть 20 брендов, поэтому я хотел бы случайным образом показать 5 брендовв сообщении магазина.

Я нашел следующий код, который возвращает 5 случайных брендов ( Отображение случайных терминов таксономии в Wordpress )

<?php

$max = 5; //number of categories to display
$taxonomy = 'brands';
$terms = get_terms($taxonomy, 'orderby=name&order= ASC&hide_empty=0');

// Random order
shuffle($terms);

// Get first $max items
$terms = array_slice($terms, 0, $max);

// Sort by name
usort($terms, function($a, $b){
return strcasecmp($a->name, $b->name);
});

// Echo random terms sorted alphabetically
if ($terms) {
foreach($terms as $term) {
echo '<a href="' .get_term_link( $term, $taxonomy ) . '" title="' .  
sprintf( __( "View all posts in %s" ), $term->name ) . '" ' . '>' . $term- 
>name.'</a> ';
}
}?>

Однако, похоже, получается 5случайные бренды из всех постов, а не из текущего.

Любые идеи, как сделать эту работу только для таксономий (брендов), прикрепленных к текущему посту.

Спасибо, Ричард

1 Ответ

0 голосов
/ 27 декабря 2018

Ваш код всегда говорит, чтобы получить условия таксономии, но не указывает, что он должен относиться к текущему идентификатору поста.Эта строка должна помочь:

$taxonomies=get_taxonomies('','names'); wp_get_post_terms($post->ID, $taxonomies, array("fields" => "names"));

Ссылка на этот вопрос: https://wordpress.stackexchange.com/questions/162175/get-taxonomy-names-by-post-id

...