SÄ hÀr visar du populÀra inlÀgg av vyer i WordPress utan ett plugin

Popular Posts Example

Tidigare har vi visat dig hur du skapar en populÀr post-tabber i WordPress med hjÀlp av ett plugin. Det pluginet fungerar bra för boxare. Vi ville dock ha mer anpassning i vÄr layout, sÄ vi bestÀmde oss för att göra det utan ett plugin. I den hÀr artikeln visar vi dig hur du spÄrar och visar populÀra inlÀgg efter visningar i WordPress utan att anvÀnda nÄgra plugins.

Ett exempel pÄ vÄr anpassade populÀra inlÀggsvisning visas i skÀrmdumpen nedan:

Det första vi behöver göra Àr att skapa en funktion som kommer att upptÀcka antalet visningar av post och lagra den som ett anpassat fÀlt för varje inlÀgg. För att göra detta klistrar du in följande koder i ditt temas funktioner.php-fil eller bÀttre i ett platsspecifikt plugin:


function wpb_set_post_views($postID) {
    $count_key = 'wpb_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);
    }
}
//To keep the count accurate, lets get rid of prefetching
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

Nu nÀr du har den hÀr funktionen pÄ plats mÄste vi anropa den hÀr funktionen pÄ sidorna med enstaka inlÀgg. PÄ sÄ sÀtt vet funktionen exakt vilket inlÀgg som fÄr krediten för visningarna. För att göra detta mÄste du klistra in följande kod i din enda inlÀggsslinga:

wpb_set_post_views(get_the_ID());

Om du anvÀnder ett barns tema eller bara vill göra det enkelt för dig sjÀlv, bör du helt enkelt lÀgga till trackern i din rubrik med hjÀlp av wp_head hook. SÄ klistra in följande kod i ditt temas funktioner.php-fil eller det platsspecifika tillÀgget:


function wpb_track_post_views ($post_id) {
    if ( !is_single() ) return;
    if ( empty ( $post_id) ) {
        global $post;
        $post_id = $post->ID;    
    }
    wpb_set_post_views($post_id);
}
add_action( 'wp_head', 'wpb_track_post_views');

NÀr du vÀl har placerat detta kommer det anpassade fÀltet att uppdateras varje gÄng en anvÀndare besöker inlÀgget.

Obs! Om du anvÀnder ett cacheplugin fungerar den hÀr tekniken INTE som standard. Vi anvÀnder W3 Total Cache, och den har funktionen som heter Fragmented Caching. Du kan anvÀnda det för att fÄ det hÀr att fungera bra. HÀr Àr vad som behöver Àndras:

<!-- mfunc wpb_set_post_views($post_id); --><!-- /mfunc -->

Nu kan du göra alla typer av hÀftiga saker som visningsantal för visningsposter eller sortera inlÀgg efter antal visningar. LÄt oss ta en titt pÄ hur man gör nÄgra av dessa coola saker.

Om du vill visa inlÀggsvyn rÀknas du pÄ dina enskilda inlÀggssidor (ofta bredvid kommentarantalet eller nÄgot). DÄ Àr det första du behöver göra att lÀgga till följande i ditt temas funktioner.php-fil eller det platsspecifika tillÀgget.


function wpb_get_post_views($postID){
    $count_key = 'wpb_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 View";
    }
    return $count.' Views';
}

LÀgg sedan till följande kod i din inlÀggsslinga:

wpb_get_post_views(get_the_ID());

Om du vill sortera inlÀggen efter antal visningar kan du göra det enkelt med parametern wp_query post_meta. Det mest grundlÀggande exemplet loopfrÄgan skulle se ut sÄ hÀr:


<?php 
$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'wpb_post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC'  ) );
while ( $popularpost->have_posts() ) : $popularpost->the_post();

the_title();

endwhile;
?>

För att lÀgga till andra WP_Query-parametrar som tidsintervall, se sidan WP_Query pÄ Codex.

Vi hoppas att du gillade det hÀr inlÀgget.