问题描述
默认情况下,WordPress 按字母顺序排序自定义分类法 (作为标签),而不是按照在标签框中输入的顺序。
有人知道有什么方法可以按照他们在帖子编辑屏幕中输入的顺序显示自定义分类标准?
该网址是:http://granadatheater.com/
GGW(Goes Good With) 艺术家目前是按字母顺序排列的,他们希望改变它们,这样它们的输入方式与输入方式相同。
所以如果输入它的 Artist1,Artist3,Artist2 这是如何应该出现在网站的前端。
最佳解决方案
这是不可能的 「开箱即用」…
默认的’orderby’ 选项是 (升序或降序)
-
ID 名称
-
默认
-
金属块
-
计数
-
term_group
这些都在 codex 中详细说明。
–
那就是说有一些聪明的女士们绅士在这里如果有人能解决这个问题,我可以确定这些人中的一个
次佳解决方案
经过相当多的搜索和广泛的测试,我找到了答案。
将此代码添加到主题的 functions.php 中:
function set_the_terms_in_order ( $terms, $id, $taxonomy ) {
$terms = wp_cache_get( $id, "{$taxonomy}_relationships_sorted" );
if ( false === $terms ) {
$terms = wp_get_object_terms( $id, $taxonomy, array( 'orderby' => 'term_order' ) );
wp_cache_add($id, $terms, $taxonomy . '_relationships_sorted');
}
return $terms;
}
add_filter( 'get_the_terms', 'set_the_terms_in_order' , 10, 4 );
function do_the_terms_in_order () {
global $wp_taxonomies; //fixed missing semicolon
// the following relates to tags, but you can add more lines like this for any taxonomy
$wp_taxonomies['post_tag']->sort = true;
$wp_taxonomies['post_tag']->args = array( 'orderby' => 'term_order' );
}
add_action( 'init', 'do_the_terms_in_order');
(信用:这是基于 – 但改进 – http://wordpress.kdari.net/2011/07/listing-tags-in-custom-order.html)
第三种解决方案
我一直在努力寻找一个自定义分类法的字母子句的答案… 我不建议改变核心 WP 文件,所以这里是我添加到我的 taxonomy.php 文件列出自定义分类法描述,链接以字母顺序排列为小孩。修改以满足您的需要,我希望这有助于某人在那里。
// Get Main Taxonomy for use in template file
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$termTaxonomy = $term->taxonomy;
<h1><?php echo apply_filters( 'the_title', $term->name ); ?></h1>
<?php // test for description before unleashing a div
if ( !empty( $term->description ) ):
echo '<div class="description">';
echo $term->description;
echo '</div>;
endif; ?>
// Now get children terms, using get_term & 'child_of' get's us alphabetical order
$termchildren = get_terms( $termTaxonomy, array(
'child_of' => $term->term_id,
'hierarchical' => 0,
'fields' => 'ids',
'hide_empty' => 0
) );
// Make an alphabetical linked list
echo '<ul>';
foreach ($termchildren as $child) {
$term = get_term_by( 'id', $child, $termTaxonomy );
// Modify this echo to customize the output for each child term
echo '<li><a href="' . get_term_link( $term->name, $termTaxonomy ) . '" alt="' .$term->description. '">' . $term->name . '</a></li>';
}
echo '</ul>';
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。