Hallöchen!
Ich habe mir eine eigene Funktion für das setzen der Artikel Views geschrieben und lasser mir diese auch in der Artikelübersicht im Dashboard ausgeben.
Ich habe die Spalte auch sortierbar gemacht, nur leider funktioniert das nicht richtig.
Ich bekomme werte von 306,150,901.
Dabei müsste zuerst der Artikel mit 901 Views kommen etc.
Hier mein Code:
PHP
/////////////////////////////////////// Post Views///////////////////////////////////////function setPostViews($postID){ $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); }}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 Aufrufe'; } return $count . ' Aufrufe';}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()); }}function views_column_register_sortable( $columns ) { $columns['post_views'] = 'Views'; return $columns;}function views_column_orderby($query) { $orderby = $query->get('orderby'); if( 'post_views' == $orderby ) { $query->set('meta_key','post_views_count'); $query->set('orderby','meta_value_num'); }}add_filter('manage_posts_columns', 'posts_column_views');add_action('manage_posts_custom_column', 'posts_custom_column_views', 5, 2);add_filter('manage_pages_columns', 'posts_column_views');add_action('manage_pages_custom_column', 'posts_custom_column_views', 5, 2);add_filter('manage_edit-post_sortable_columns', 'views_column_register_sortable');add_filter('pre_get_posts', 'views_column_orderby');
Wer ne Ahnung, was da falsch laufen könnte?