我试图从自定义分类法中输出一个术语列表。我几乎可以肯定我以前使用过这个代码段,但不知为什么WP会抛出错误:
shuffle()期望参数1为数组
/* Show Custom Taxonomy Terms */
function these_rand_tax1() {
$max = 8; //number of categories to display
$taxonomy = \'baumaschinen_cat\';
$terms = get_terms(\'taxonomy=\'.$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 \'<p><a href="\' .get_term_link( $term, $taxonomy ) . \'" title="\' . sprintf( __( "View all posts in %s" ), $term->name ) . \'" \' . \'>\' . $term->name.\'</a></p> \';
}
}
}
add_shortcode(\'random_taxonomies\',\'these_rand_tax1\');
add_filter(\'widget_text\', \'do_shortcode\');
如何从自定义分类术语中获得随机列表?
SO网友:BlueSuiter
Try this code:
function these_rand_tax1()
{
$max = 8; //number of categories to display
$taxonomy = \'baumaschinen_cat\';
$terms = get_terms(\'taxonomy=\' . $taxonomy . \'&orderby=name&order=ASC&hide_empty=0\');
$terms = (array)$terms;
// 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 \'<p><a href="\' . get_term_link($term[\'slug\'], $taxonomy) . \'" title="\' . sprintf(__(" View all posts in %s"), $term[\'name\']) . \'" \' . \'>\' . $term[\'name\'] . \'</a></p> \';
}
}
}