맞춤 분류 목록의 순서 변경


15

기본적으로 WordPress는 태그 상자에 입력 한 순서가 아닌 알파벳 순서로 사용자 지정 분류법 (이 경우 태그로)을 주문합니다.

누구나 편집 후 화면에 입력 한 순서대로 사용자 정의 분류법을 표시하는 방법을 알고 있습니까?

해당 URL은 http://granadatheater.com/입니다.

GGW (Goes Good With) 아티스트는 현재 알파벳 순서이며 입력 한 방식과 동일하게 순서를 변경하기를 원합니다.

따라서 Artist1, Artist3, Artist2를 입력하면 사이트의 프런트 엔드에 표시됩니다.


포스트 기반으로 주문을 입력하는 것을 의미합니까?
hakre

아마 ID로 주문?
Bainternet

알파벳 순서로 표시되어 있음을 알 수 있으므로 질문을 이해하지 못할 수 있습니다. 정확히 어디에서 원하십니까? 변경 사항을 찾을 수있는 스크린 샷과 예제 URL을 제공 할 수 있습니까?
MikeSchinkel

답변:


0

"바로 사용할 수 없습니다"...

기본 'orderby'옵션은 (오름차순 또는 내림차순)

  • 아이디 이름
  • 기본
  • 강타
  • 카운트
  • term_group

이것들은 모두 코덱에 자세히 설명되어 있습니다.

-

그것은 여기에 영리한 숙녀와 신사가 있다고 말했습니다. 누군가가 그것을 해결할 수 있다면,이 사람들 중 하나가 확신 할 수 있습니다!


8

꽤 많은 검색과 광범위한 테스트를 거친 후 답을 찾았습니다.

이 코드를 테마의 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 )


관리자가 캐시를 지우더라도이 기능이 작동합니까? 용어 순서에 따라 캐시에 의존하는 것이 불안정한 것 같습니다.
PBwebD

1
관리자가 캐시를 지우면 새 용어는 아직 저장되지 않았으므로 사라집니다. 우리는 이것을 게시 한 이후 많은 Wordpress 사이트에서 위의 코드를 사용해 왔으며 결코 문제가 발생하지 않았습니다.
Biranit Goren

1
@BiranitGoren 은이 주제를 재개 한 것에 대해 용서하지만 모든 답변의 중심 관심사 term_order는 기본적으로 지원되지 않는다는 것입니다. 코드 예제에서 term_order정렬 할 수 있도록 정의 된 위치가 궁금 합니다.
GigiSan 2016 년

2
@ GigiSan 그것은 실제로 기본적으로 지원되지만 단순히 사용되지 않습니다. Wordpress의 핵심은 term_order이지만 기본적으로 사용하지는 않습니다. 따라서 정의 할 필요가 없으며 이미 정의되어 있습니다. (trac : core.trac.wordpress.org/ticket/9547 참조 )
Biranit Goren

2

나는 사용자 정의 분류법의 알파벳 하위 용어에 대한 답을 찾기 위해 고심하고 있습니다 ... 핵심 WP 파일을 변경하지 않는 것이 좋습니다. 알파벳 순서로 자식 용어에. 귀하의 요구에 맞게 수정하십시오. 이것이 누군가를 도울 수 있기를 바랍니다.

// 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>';

2

나는 이것이 일종의 부정 행위라는 것을 알고 있지만, 항상 Simple Custom Post Order 플러그인을 사용할 수 있습니다. 무료이며 게시물 유형 외에도 분류법을 정렬 할 수 있습니다.


0

그리고 웹 페이지에 좋은 순서로 표시 한 후에는 다음과 같습니다.

wp_get_post_terms에 "orderby"=> "term_group"을 넣으려면

예 :

"포스트"는 내 맞춤 분류법 이름입니다.

$poste =  wp_get_post_terms($post->ID, 'poste', array("fields" => "names", "orderby" => "term_group"));
        if(!empty($poste[0])){ echo $poste[0];}
        if(!empty($poste[1])){
          echo " - ", $poste[1]; }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.