>  기사  >  백엔드 개발  >  빠른 팁: 정렬 가능한 사용자 정의 열 활성화

빠른 팁: 정렬 가능한 사용자 정의 열 활성화

WBOY
WBOY원래의
2023-09-01 17:45:13569검색

빠른 팁: 정렬 가능한 사용자 정의 열 활성화

Claudio Simeone의 최근 게시물에서 그는 게시물에 추가 열을 추가하는 방법, 게시물 유형, 관리 화면을 사용자 정의하는 방법(또는 기존 항목을 삭제하는 방법)을 시연했습니다. 이 빠른 팁에서는 이를 토대로 새로 생성된 열을 정렬 가능하게 만드는 방법을 보여 드리겠습니다.


정렬 가능으로 등록하려는 열을 WordPress에 알리려면 다음 필터가 필요합니다.

으아악

게시물과 페이지의 경우 $screen->id는 각각 "edit-post" 및 "edit-page"입니다. 일반적으로 "my-post-type"이라는 게시물 유형의 경우 "edit-my-post-type"입니다.

필터에는 정렬 가능한 열의 이름이 키로, 정렬 기준이 값으로 포함된 배열이 전달됩니다. 보다 정확하게는 이러한 값은 테이블을 채우는 쿼리에 "orderby" 매개변수가 설정되어 있음을 나타냅니다. 열을 제거하는 것과 마찬가지로 이 배열에서 열을 제거하여 "정렬할 수 없게" 만들 수도 있습니다. 예를 살펴보겠습니다:


등록란

Claudio의 기사에 따르면 "Cake" 게시물 유형에 "Slice" 열을 추가했다고 가정하면 다음을 수행할 수 있습니다.

으아악

열에 다음 내용을 추가했습니다.

으아악

조각을 메타데이터로 저장했지만 열은 다른 데이터로 채워질 수 있습니다.


열을 정렬 가능하게 만들기

이제 사용자 정의 열을 "정렬 가능"으로 등록합니다. 위에서 언급했듯이 manage_{$screen->id}_sortable_column 필터를 사용합니다. 이 경우 manage_{$screen->id}_sortable_column 过滤器。本例中的 $screen->id는 "edit-cake"입니다.

으아악

$columns 배열의 키는 정렬 가능한 열을 나타내며 해당 값은 쿼리에서 '$columns 数组的键表示可排序列,其值告诉 WordPress 在查询中将 'orderby' 设置为什么。如果该值是 WordPress 本身理解的 'orderby 之一(这些值包括 'title'、'date'、'modified'、'comment_count',或者确实是下面列出的任何其他值WordPress Codex 中的 WP_Query)我们可以到此为止。此规则的例外情况(如本例所示)是 'meta_value' 和 'meta_value_num'을 무엇으로 설정할지 WordPress에 알려줍니다. 값이 WordPress 자체에서 인식하는 '

' 중 하나인 경우(이 값에는 '제목', '날짜', '수정됨 포함) ', ' comment_count' 또는 실제로 WordPress Codex의 WP_Query에 대해 아래에 나열된 다른 값) 거기서 멈출 수 있습니다. 이 예에 표시된 대로 이 규칙의 예외는 'meta_value_num' 및 'meta_value_num' 매개변수이며, 이 매개변수에도 메타키를 설정해야 합니다.

pre_get_posts 操作。这传递了一个我们可以修改的查询对象。请注意,所有默认查询(正面和背面)都会触发此操作。虽然它不太可能引起任何问题,但除非您希望 WordPress 在前端也将 orderby메타 값을 기준으로 정렬하거나 WordPress가 자동으로 이해하지 못하는 다른 방법을 사용하여 정렬하려면 “슬라이스” 정렬이 무엇을 의미하는지 알려주어야 합니다. 포스트 메타를 통해 주문하는 경우 가장 쉬운 방법은 pre_get_posts 작업에 연결하는 것입니다. 이는 수정할 수 있는 쿼리 개체를 전달합니다. 모든 기본 쿼리(앞면 및 뒷면)가 이 작업을 트리거합니다. 문제가 발생할 가능성은 낮지만 WordPress가 프런트 엔드에서도

를 "슬라이스"로 설정하도록 하지 않는 한 관리자 측의 쿼리에만 영향을 미치는 것이 가장 좋습니다.

으아악 meta_value' 而不是 'meta_value_num이것은 쿼리가 "슬라이스"로 정렬되어 있는지 확인하고, 그렇다면 WordPress에 "슬라이스" 게시물 메타 값을 기준으로 숫자로 정렬하도록 지시합니다. 값을 알파벳순으로 정렬하려면 '

'을 사용하세요.

$query 是一个 WP_Query 对象,因此您可以使用该对象对任何内容进行排序,您也可以对列进行排序。对于其他更复杂的事情,您需要挂钩 posts_orderby (或 post_clauses

) 후크가 있지만 이는 이 빠른 팁의 범위를 벗어납니다.

참고:

게시물에 해당 메타 키 값이 저장되지 않은 경우 해당 메타 키를 기준으로 정렬하면 해당 게시물이 표시되지 않습니다. 이는 메타값으로 0을 저장하는 게시물과 다릅니다. 🎜

위 내용은 빠른 팁: 정렬 가능한 사용자 정의 열 활성화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.