programing

여러 워드프레스 사용자 지정 필드 값을 정렬하려면 어떻게 해야 합니까?

lastmoon 2023. 3. 18. 09:17
반응형

여러 워드프레스 사용자 지정 필드 값을 정렬하려면 어떻게 해야 합니까?

'가격' 커스텀 필드에서 주문된 '제품' 유형의 게시물을 표시합니다.

$query = new WP_Query( 
                      array ( 'post_type' => 'product', 
                              'orderby' => 'meta_value', 
                              'meta_key' => 'price' ) 
                     );

'사이즈'로도 주문하려면 어떤 코드를 사용해야 하나요?

커스텀 필드에 여러 정렬이 필요한 다른 예:

'시작' 순으로 정렬된 '이벤트' 유형의 게시물을 표시합니다.'Hour'를 누른 다음 'Start_Minute'를 누릅니다.

Bainternet 덕분에 해결책을 찾을 수 있었습니다.

function orderbyreplace($orderby) {
    return str_replace('menu_order', 'mt1.meta_value, mt2.meta_value', $orderby);
}

그리고...

$args = array(
  'post_type'=>'Events',
  'orderby' => 'menu_order',
  'order' => 'ASC',
  'meta_query' => array(
        array(
            'key' => 'Start_Hour',
            'value' => '',
            'compare' => 'LIKE'
        ),
        array(
            'key' => 'Start_Minute',
            'value' => '',
            'compare' => 'LIKE'
        )
    )
);

add_filter('posts_orderby','orderbyreplace');
$loop = new WP_Query( $args );
remove_filter('posts_orderby','orderbyreplace');

Wordpress 3.7에서는 약간 바뀐 것 같아요.

난 바꿔야 했다.

return str_replace('menu_order', 'mt2.meta_value, mt1.meta_value', $orderby);

안으로

return str_replace('wp_posts.menu_order', 'mt2.meta_value, mt1.meta_value', $orderby);

초기 해결 감사합니다![편집]

다음 예시는 여러 meta_key 및 orderby를 사용하는 것으로 동작할 것으로 생각됩니다.

$params = array(
'post_type' => 'product',
'meta_query' => array(
    array(
            'key' => 'price',
            'value' => '',
            'compare' => 'LIKE'
    ),
    array(
            'key' => 'size',
            'value' => '',
            'compare' => 'LIKE'
    )
),
'orderby' => 'price size',
'order' => 'ASC'
);
$query = new WP_Query;
$resulting_obj = $query->query($params);

meta_query 항목, 특히 'value' 매개 변수를 좀 더 사용해야 합니다.'Custom Field Parameters' 섹션에서 http://codex.wordpress.org/Class_Reference/WP_Query을 자세히 살펴보십시오.

커스텀 필드 중 하나가 meta_key이고 다른 필드가 테이블의 일반 컬럼인 경우 여러 커스텀필드를 정렬하기 위해 필터나 후크가 필요하지 않습니다.이러한 파라미터/인수를 쿼리에 사용합니다.

'meta_key' => 'KEY_NAME',
'orderby' => 'meta_value_num SECOND_COLUMN_NAME',
'order' => 'ASC' or 'order' => 'DESC'

의 순서는 다음과 같습니다.meta_value_num그리고.SECOND_COLUMN_NAME주문에 따라 다른 2개의 결과가 나타날 수 있습니다.

언급URL : https://stackoverflow.com/questions/12679625/how-to-sort-multiple-wordpress-custom-field-values

반응형