WordPress – a legnépszerűbb bejegyzések megjelenítése plugin nélkül

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

1 hozzászólás

  1. 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.

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét