Az előző bejegyzésben már volt arról szó, hogy miért is előnyös 1-1 funkciót plugin nélkül megoldani (nincs frissítés, gyorsabb honlap, nem terheli a rendszert).
A most következő kódrészlet segítségével, plugin nélkül lehet megjeleníteni a WordPress alapú lapon a legnépszerűbb bejegyzéseket.
Először is készíts egy biztonsági másolatot a function.php fájlról, amit a theme könyvtárban találsz majd meg. Ha megvan, nyisd meg szerkesztésre és másold be az alábbi kódrészletet:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function most_popular_posts($no_posts = 10, $before = '<li>', $after = '</li>', $show_pass_post = false, $duration='') { 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 . '<a href="' . $permalink . '" title="' . $post_title.'">' . $post_title . '</a> (' . $comment_count.')' . $after; } } else { $output .= $before . "None found" . $after; } echo $output; } |
A kód segítségével hozzáadtunk egy új function-t a laphoz, melynek ez a neve: most_popular_posts.
Ezután ha pl. megnyitod a sidebar.php-t (vagy ahova ezt az eredményt szeretnéd kitenni), másold be az alábbi kódrészletet:
1 2 3 | <li><h2>Popular</h2> <ul><?php most_popular_posts(); ?></ul> </li> |
Nyilván ha nem a sidebar.php-ba megy, akkor nem kell az UL és a LI a kódba, a lényeg úgyis azon van, hogy most_popular_posts function-t kell meghívni.
Az alábbi kódrészletet kell csak átírnod, ha nem pont 10 bejegyzésre lenne szükséged:
1 | $no_posts = 10 |
Sziasztok!
Elsőre elég bonyolult nekem ez a függvény.
Mit kellene módosítanom, hogy a kiemelt képet is visszaadja nekem és ne csak egy címet? (Jelenleg csak címet ad vissza.)
Egymás mellé szeretném majd kitenni a top 3 cikket.
Köszönöm a segítséget előre is.