26. WordPress: Meest populaire artikels weergeven zonder plugin.
Populaire artikelen laten weergeven aan de hand van een plugin is veel te gemakkelijk voor ons, het is leuker om dit zelf te implementeren in de theme. Dat is de manier om WordPress een beetje beter te leren begrijpen en tegelijkertijd zorgen we ervoor dat onze website niet trager begint te werken door al die plugins die we gebruiken.
Ik heb zelf even gezocht en uitgetest en ik ben op twee opties gekomen om de meest populaire artikels te laten tonen op de site. Let er wel op dat dit steeds op basis is van het aantal reacties op een bericht. Heb je geen reacties, dan zal je ook geen resultaten zien.
Optie 1: Met het aantal reacties erbij
Open functions.php en voeg er volgende lijntjes code aan toe: ', $show_pass_post = false, $duration='') {
', $after = '
global $wpdb;
$request = "SELECT ID, post_title, COUNT($wpdb->comments.comment_post_ID) AS 'comment_count' FROM $wpdb->posts, $wpdb->comments";
$request .= " WHERE comment_approved = '1' AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status = 'publish'";
if(!$show_pass_post) $request .= " AND post_password =''";
if($duration !="") { $request .= " AND DATE_SUB(CURDATE(),INTERVAL ".$duration." DAY) < post_date ";
}
$request .= " GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_count DESC LIMIT $no_posts";
$posts = $wpdb->get_results($request);
$output = '';
if ($posts) {
foreach ($posts as $post) {
$post_title = stripslashes($post->post_title);
$comment_count = $post->comment_count;
$permalink = get_permalink($post->ID);
$output .= $before . '' . $post_title . ' (' . $comment_count.')' . $after;
}
} else {
$output .= $before . "None found" . $after;
}
echo $output;
}
?>
Verander $no_posts = 10 naar bijvoorbeeld $no_posts = 5 om het aantal weer te geven artikels te veranderen.
Ga nu naar de sidebar.php en zorg dat je ergens tussen de <ul> en </ul> tags volgende code toevoegt:
Populaire berichten:
Optie 2: zonder het aantal reacties erbij.
We kunnen dit makkelijk realiseren door slechts 1 bestand aan te passen, namelijk sidebar.php
Zorg er opnieuw voor dat je tussen de <ul> en </ul> tags deze code toevoegt:
Populaire berichten:
comments.comment_post_ID) AS 'stammy' FROM $wpdb->posts, $wpdb->comments WHERE comment_approved = '1' AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status = 'publish' AND post_date < '$now' AND post_date > '$lastmonth' AND comment_status = 'open' GROUP BY $wpdb->comments.comment_post_ID ORDER BY stammy DESC LIMIT 10";
$posts = $wpdb->get_results($popularposts);
$popular = '';
if($posts){
foreach($posts as $post){
$post_title = stripslashes($post->post_title);
$guid = get_permalink($post->ID);
$popular .= '
';
}
}echo $popular;
?>
En klaar! Om het aantal weer te geven artikelen te wijzigingen kan je “DESC LIMIT 10” veranderen naar bijvoorbeeld “DESC LIMIT 5”.
Meestal is het gewoon goed zoeken om een uitbreiding op je WordPress site te vinden. De WordPress community is zeer groot en dus zijn er al snel enkele knappe designers die reeds hetzelfde wilden realiseren en er een oplossing voor hebben geplaatst.
Het volgende hoofdstuk is ietwat gerelateerd, we gaan leren hoe we gerelateerde artikels kunnen bovenhalen, zowel met als zonder plugin.
Wordpress theme maken of toch kopen?
Een Wordpress theme maken vergt veel werk, al is wat extra kennis altijd welkom. We maken zelf geen sites meer maar gebruiken nu de themes die terug te vinden zijn op: Theme Junkie.