Postsichten als sortierbar gestalten

Ich benutze benutzerdefinierte Feld auf WordPress Admin Posts Seite durch Hinzufügen des folgenden Codes und dann versuchen, die Beiträge basierend auf Post-Ansichten zu sortieren, aber die Sortierung funktioniert nicht. Hier ist der Code, den ich in functions.php hinzugefügt habe:

add_filter('manage_posts_columns', 'posts_column_views'); add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2); function posts_column_views($defaults){ $defaults['post_views'] = __('Views'); return $defaults; } function posts_custom_column_views($column_name, $id){ if($column_name === 'post_views'){ echo getPostViews(get_the_ID()); } } // Register the column as sortable function posts_column_register_sortable( $columns ) { $columns['post_views'] = 'post_views'; return $columns; } add_filter( 'manage_edit-post_sortable_columns', 'posts_column_register_sortable' ); function posts_column_orderby( $vars ) { if ( isset( $vars['orderby'] ) && 'post_views_count' == $vars['orderby'] ) { $vars = array_merge( $vars, array( 'meta_key' => 'post_views', 'orderby' => 'meta_value_num' ) ); } return $vars; } add_filter( 'request', 'posts_column_orderby' ); function getPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0"; } return $count; } function setPostViews($postID) { if (!current_user_can('level_7') ) : $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); }else{ $count++; update_post_meta($postID, $count_key, $count); } endif; } 

Jetzt ist das Problem, dass ich die Postansichten in der edit.php Seite der wordpress Admin sehen kann und die volumn Views ist auch sortierbar, aber klickend auf Sichtspalte sortiert nicht die Pfosten, die auf Ansichten basieren.

Bitte helfen Sie mir, dieses Problem zu lösen.

Solutions Collecting From Web of "Postsichten als sortierbar gestalten"

Die posts_column_register_sortable function, die an posts_column_register_sortable gibt ein Array mit Namen sortierbarer Spalten als Schlüssel und dem entsprechenden Wert zurück, nach dem sortiert werden soll (zB ‘post_title’ usw.).

In Ihrem Fall haben Sie “post_views” angegeben, nach denen sortiert werden soll, was nicht als Spalte existiert. Sie müssen also WordPress mitteilen, wie es sortiert werden soll. Was Sie in der function posts_column_orderby tun, posts_column_orderby request . Allerdings ist die Variable 'post_views_count' , die Sie überprüfen, 'post_views_count' , nicht die “post_views”, die Sie oben festgelegt haben. Ändern Sie einen von ihnen, um den anderen zu passen, und es sollte funktionieren.