Niedziałający widget – błąd w kodzie?
-
Dzień dobry. Mam na stronie zakodowany widget „popularne posty”. Niestety ten widget nie działa, tzn. od początku wyświetla te same posty, jedne z pierwszych, a nie wskazuje naprawdę popularnych postów spośród wszystkich. Zakładam, że może brakować jakiejś funkcji, np. wskazania okresu (np. w tym tygodniu albo w tym miesiącu). Czy mogę liczyć na radę co do korekty kodu?
if($ats[’typ’] == 'popularne’){
$args = array(
'posts_per_page’ => $ats[’limit’],
'order’ => 'DESC’,
'meta_key’ => 'post_views_count’,
'orderby’ => 'meta_value_num’,
);
}else{
$args = array(’posts_per_page’ => $ats[’limit’],);
}$the_query = new WP_Query( $args );
ob_start();
if ( $the_query->have_posts() ){ // ifposts
?><ul class=”posts-list”><?php
while( $the_query->have_posts() ){
$the_query->the_post();
$html .= get_template_part( 'template-parts/post-list’);} //endwhile
?><?php
} // end ifposts
wp_reset_postdata();return ob_get_clean();
-
Sprawdź sobie w bazie, czy masz w ogóle mety post_views_count.
Jeżeli nie, to w functions.php motywu dopisz sobiefunction my_post_view_count(){ if ( is_single() ){ global $post; $count_post = esc_attr( get_post_meta( $post->ID, 'post_views_count', true) ); if( $count_post == ''){ $count_post = 1; add_post_meta( $post->ID, 'post_views_count', $count_post); }else{ $count_post = (int)$count_post + 1; update_post_meta( $post->ID, 'post_views_count', $count_post); } } } add_action('wp_head', 'my_post_view_count');
Sprawdziłem. W pliku functions znalazłem taki kod:
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) { $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); } }
Czy to oznacza, że nie muszę dodawać w/w kodu?
Nie musisz.
Natomiast sprawdź sobie, czy i gdzie potem jest wywoływana funkcja setPostViewsA jak to sprawdzić?
- Temat ‘Niedziałający widget – błąd w kodzie?’ jest zamknięty na nowe odpowiedzi.