WordPress rastgele yazı nasıl gösterilir

WordPress rastgele yazı nasıl gösterilir
44

Yeni projemde lazım olmuştu orada kullanmışken yazısınıda yazayım dedim. Bu yazımda sitenizin herhangi bir yerinde nasıl wordpress rastgele yazı gösterebileceğimizi göstereceğim.

WordPress rastgele yazı nasıl gösterilir?

İlk olarak link yöntemiyle rastgele bir yazıya gitmeyi göstereyim. Aşağıdaki kodları temanızın functions.php dosyasının içerisine ekleyin.

Kullanımı http://www.siteadiniz.com/?rastgele

function rastgele_yazi() {
global $wpdb;
$query = "SELECT ID FROM $wpdb->posts WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
if ( isset( $_GET['random_cat_id'] ) ) {
$random_cat_id = (int) $_GET['random_cat_id'];
$query = "SELECT DISTINCT ID FROM $wpdb->posts AS p INNER JOIN $wpdb->term_relationships AS tr ON (p.ID = tr.object_id AND tr.term_taxonomy_id = $random_cat_id) INNER JOIN $wpdb->term_taxonomy AS tt ON(tr.term_taxonomy_id = tt.term_taxonomy_id AND taxonomy = 'category') WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
}
if ( isset( $_GET['random_post_type'] ) ) {
$post_type = preg_replace( '|[^a-z]|i', '', $_GET['random_post_type'] );
$query = "SELECT ID FROM $wpdb->posts WHERE post_type = '$post_type' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
}
$random_id = $wpdb->get_var( $query );
wp_redirect( get_permalink( $random_id ) );
exit;
}
if ( isset( $_GET['rastgele'] ) ) {
add_action( 'template_redirect', 'rastgele_yazi' );
}

Başlığıyla Rastgele Yazı Nasıl Gösterilir?

Link yöntemi işinizi görmediyse başka alternatiflerinizde mevcut. Sitenizin herhangi bir yerine aşağıdaki kodu eklerseniz eklediğiniz yerde rastgele bir yazıyı başlığı ve linkiyle göstermiş olursunuz.

<?php $rastgele = get_posts('numberposts=1&orderby=rand'); foreach( $rastgele as $post ) :?>
    <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
            <h3><?php the_title(); ?></h3>
     </a>
 <?php endforeach; ?>

Birden fazla rastgele yazı sıralama

Üstteki yöntemde mi işinizi görmedi istediğiniz birden fazla rastgele yazı göstermek mi? o zaman bu tam sizlik. Yapmanız gereken tek şey numberposts=1 olan rakamı değiştirmek olacak, örneğin numberposts=5

<?php $rastgele = get_posts('numberposts=5&orderby=rand'); foreach( $rastgele as $post ) :?>
    <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
            <h3><?php the_title(); ?></h3>
     </a>
 <?php endforeach; ?>

Yorum Yap