A Wordpress-hez nem nagy szám 1-1 olyan plugint találni, melyek segítségével a cikkhez kapcsolódó, egyéb cikket is ki lehet listázni. Akár kategória, akár tag-ek alapján. Ám a sok plugin lassítja a Wordpress-t, frissítéskor nem is biztos hogy kompatibilis marad a plugin a Wordpress-sel, illetve magát a plugint is frissíteni kell időnként (már ha adnak ki 1-1 új verziót belőle). Épp ezért, amikor csak lehet, javasolt az egyes funkciókat plugin nélkül megoldani. A fentiekből következik, hogy most 2 olyan kódrészlet jön majd, amivel kapcsolódó bejegyzéseket lehet kitenni kategória vagy tag-ek alapján.
Kapcsolódó bejegyzések kategória alapján
Először is nyisd meg a theme könyvtárban található single.php fájlt. Keresd meg benne ezt a részt:
<?php the_content() ?>
és utána illeszd be a template-be az alábbi részletet:
<div class="clear"></div>
<?php
$this_post = $post;
$category = get_the_category(); $category = $category[0]; $category = $category->cat_ID;
$posts = get_posts('numberposts=6&offset=0&orderby=post_date&order=DESC&category='.$category);
$count = 0;
foreach ( $posts as $post ) {
if ( $post->ID == $this_post->ID || $count == 5) {
unset($posts[$count]);
}else{
$count ++;
}
}
?>
<?php if ( $posts ) : ?>
<div class="related_articles">
<h2>További cikkek e témában:</h2>
<ul>
<?php foreach ( $posts as $post ) : ?>
<li><a href="<?php the_permalink() ?>" title="<?php if ( get_the_title() ){ the_title(); }else{ echo ""; } ?>"><?php if ( get_the_title() ){ the_title(); }else{ echo "Untitled"; } ?></a> (<?php the_time('Y.m.d.') ?>)</li>
<?php endforeach // $posts as $post ?>
</ul>
</div>
<?php endif // $posts ?>
<?php
$post = $this_post;
unset($this_post);
?>
Kapcsolódó bejegyzések tag-ek alapján
A helyzet ugyanaz mint fentebb, csak most az alábbi kódot kell a single.php-ba illeszteni a fenti helyett:
<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'showposts'=>5, // Number of related posts that will be shown.
'caller_get_posts'=>1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<h3>Related Posts</h3><ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
}
echo '</ul>';
}
}
?>
Ha ezek megvannak, persze a fájlt menteni kell és feltölteni a szerverre, bár ha a Wordpress adminisztrációs felületén az "Appearance / editor" -t használtad, még erre sem lesz szükség. Mindkét kódrészletben 5-5 kapcsolódó bejegyzés van beállítva, ezt persze át lehet írni.
Harder
Profil
Korábbi hozzászólások (5)
A régi blogon érkezett hozzászólások archívuma. Új hozzászólást már nem lehet írni.
Ezt kerestem már mióta... :D Köszi^^
Egyszerű, könnyen megvalósítható és nagyszerű! Jobb, mint egy plugin! Köszönet érte!
Ezt CSS-ben hogy tudom szépen formába rázni ? :$ Köszi előre is a választ
A mintakódban van ehhez részlet, pl. div class="related_articles" . ezen keresztül bármit be lehet formázni, pl. a címsort ilyen módon (CSS-ben): .related_articles h2 {}
Az meg hogy szép legyen, leginkább a Te ízléseden múlik. :)
Helló! Ezt meg lehet valósítani widgetben? Tehát én nem egy legfrissebb bejegyzések widgetet szeretnék, hanem egy olyat amit egy adott kategória összes bejegyzését ki listázza!
Van hozzáfűznivalód? Írj nekem közvetlenül.
Kapcsolat