반응형
워드프레스 관리 페이지에서 사용자 정의 열 정렬
관리자 편집 화면에서 사용자 지정 열을 정렬하려고 합니다.열에는 정수 값(투표 횟수)이 포함되어 있습니다.
열을 생성하려면 다음과 같은 "표준" 코드를 사용합니다.
add_filter( 'manage_edit-entries_sortable_columns', 'cutify_entries_columns_sortable' );
function cutify_entries_columns_sortable( $columns )
{
$columns['entry_vote_count'] = 'entry_vote_count';
return $columns;
}
add_filter( 'manage_entries_posts_columns', 'cutify_entries_columns_head' );
function cutify_entries_columns_head($defaults)
{
unset( $defaults['date'] );
$defaults['entry_vote_count'] = 'Votes';
return $defaults;
}
add_action('manage_entries_posts_custom_column', 'cutify_entries_columns_content', 10, 2);
function cutify_entries_columns_content($column_name, $post_ID)
{
if ($column_name == 'entry_vote_count')
{
$number = rand(1,1000);
print intVal($number);
}
}
이 열을 정렬하려고 합니다.저는 여기와 다른 사이트에서 많은 답변을 읽었고 값이 post_meta에서 나온 것이라면 이것을 정렬하는 것에 대해 알고 있지만 보시다시피 이 경우 값은 함수 호출에서 반환 값에서 나온 것입니다.
post_meta 값을 기준으로 하지 않고 사용자 지정 열을 정렬하는 방법이 있습니까?
열 등록하기 열 등록을 위해 가장 먼저 필요한 것은 열 등록입니다.
<?php
add_action( 'manage_cake_posts_custom_column', 'my_cake_column_content', 10, 2 );
function my_cake_column_content( $column_name, $post_id ) {
if ( 'slices' != $column_name )
return;
//Get number of slices from post meta
$slices = get_post_meta($post_id, 'slices', true);
echo intval($slices);
} ?>
열 정렬 가능하게 만들기
<?php
add_filter( 'manage_edit-cake_sortable_columns',
'my_sortable_cake_column' );
function my_sortable_cake_column( $columns ) {
$columns['slices'] = 'slice';
//To make a column 'un-sortable' remove it from the array
//unset($columns['date']);
return $columns;
} ?>
플러그인을 개발하지 않을 경우 가장 간단한 방법은 관리 컬럼과 같은 기존 플러그인을 사용하는 것입니다. 이를 통해 주문, 컬럼 추가 등 여러 고급 작업을 수행할 수 있기 때문입니다.
사용자 지정을 추가해야 합니다.query_orderby
로.WP_Query
wp가 사용자 지정 열로 게시물 주문을 받으려 할 때.다음과 같이:
add_action( 'pre_get_posts', 'my_entry_vote_orderby' );
function my_entry_vote_orderby( $query ) {
global $wpdb;
// Only filter in the admin
if( ! is_admin() )
return;
$orderby = $query->get( 'orderby');
// Only filter if orderby is set to 'entry_vote_count'
if( 'entry_vote_count' == $orderby ) {
// We need the order - default is ASC
$order = isset( $query->query_vars ) && isset( $query->query_vars[ 'order' ] ) && strcasecmp( $query->query_vars[ 'order' ], 'desc' ) == 0 ? 'DESC' : 'ASC';
// Order the posts by vote count
$query->query_orderby = "ORDER BY ( SELECT vote_count FROM {$wpdb->posts} posts WHERE posts.post_type = 'post' AND posts.post_status='publish' ) {$order}";
}
}
언급URL : https://stackoverflow.com/questions/50266460/sorting-custom-column-in-wordpress-admin-pages
반응형
'programing' 카테고리의 다른 글
사용자 지정 게시물 유형 및 다중 사용자 지정 필드에 대한 SQL 쿼리 (0) | 2023.10.03 |
---|---|
판다의 연속된 행에서 차이가 발생하는 열 추가 (0) | 2023.10.03 |
mariadb : ODBCConf.exe로 ODBC 구성 (0) | 2023.10.03 |
에서 DbContext Connection String을 구현하려면 어떻게 해야 합니까?NET Core? (0) | 2023.10.03 |
sqalchemy의 선언적 ORM 확장자를 사용하는 경우 다중 열 인덱스 (0) | 2023.10.03 |