Mintik
4 yıl önce

Belli bir kategoriden resimli yazları çekme

Çoğu zaman ihtiyaç duyduğumuz özellikleri kendi sitemize uygulamak için kolay yolu tercih eder ve eklenti kurarak istediklerimizi yapmaya çalışırız. Ama biz farkında olmasak bile çok basit şeyleri yapmak için bile kullandığımız eklentiler, sitemizin açılmasını geciktirdiği gibi aklımızda düşündüğümüz, yapmak istediğimiz tasarımı da tam anlamıyla yapabilen, uyumlu eklentiyi bulmak için harcadığımız zaman da cabasıdır.

Bu tür uğraşlarla zaman geçirmek yerine web den arayarak istediğinizi bulabilmeniz mümkün. Sonuçta bu tür kaynak kodlarını sadece mintik.com sitesi paylaşmıyor ve türlü türlü kodlama örneklerine erişebilir hatta bu kodları kurcalayarak kendiniz de birşeyler öğrenebilirsiniz.

Evet başlıyoruz şimdi. Burada paylaşacağımız kodları sitenizin herhangi bir bölümüne yerleştirebilirsiniz sidebar, anasayfa bölümleri gibi yerlere yada footer bölümüne. Şu anda kendim için hazırlamaya çalıştığım bir bir wordpress temasında bu kodları farklı yerlerde kullanıyorum. Mesela anasayfada bir kaç tane kategori bölümü var ve bu bölümlerin her birine kategori id ile farklı kategoriye ait resimli yazıları çekmek için kullanıyorum. En son yayınlanmış konuları da sidebar bölümünde yine aynı kodla ama farklı css kodlarıyla çekiyorum. Yani kısacası sizin oldukça işinize yarayacaktır. Hemen hemen her yerde kullanılabilir. İsterseniz sidebar bölümüne eklentisiz  bir kategoriden id ile son yazıları  çekin isterseniz de anasayfaya yeni kategori bölümü oluşturup son konuları fotoğraflarıyla birlikte çekin karar size kalmış ama kullanmazsanız  bile arşivinizde bir köşede bulunsun bir gün mutlaka lazım olur.

Kategori Id Öğrenme

Yönetim paneli > Yazılar > Kategoriler linkindeki herhangi bir kategorinin yanına mouseyi getirip  düzenle  yazısının üstünde tuttuğunuzda tarayıcı ekranının alt kısmında link gözükür. Bu linkte yazan tag_ID2&  yazısındaki 2 rakamı sizin kategori id si oluyor. Örnek olarak ekran görüntüsü alıp id  bölümünün üstüne kırmızı bant çektim oradan bakabilirsiniz.

Paylaşacağımız php  kodlarını yerleştireceğiniz yer oldukça önemlidir. Aksi halde  döngüler farklı css çerçeveler içinde tekrar  edebilir ve ortaya çok saçma görüntüler çıkabilir. Kodların tamamının konuları çekeceğiniz div in içinde olması  gerekiyor.  Ana div in içine ekleyeceğiniz diğer div leride php kodların içine eklemeniz gerekiyor.  Örnek olması için ben ul ve li kullanarak kodları ekledim siz de  ona göre  bir ayar çekersiniz.

<ul class "">
    <?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
    <?php endwhile; ?>
    <?php endif; ?>
    <?php wp_reset_query(); ?>
    <?php $paged=g et_query_var( 'paged') ? get_query_var( 'paged') : 1; $args=a rray( 'post_type'=> 'post','cat'=> 2,'posts_per_page' => 5, 'paged' => $paged); // Buradaki 2 ('cat'=>2) rakamı sizin kategorinizin id sidir. $loop = new WP_Query( $args );?>
    <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    
    <li>
        <?php $thumbnail_id=g et_post_thumbnail_id(); $thumbnail_url=w p_get_attachment_image_src( $thumbnail_id, 'thumbnail-size', true ); $thumbnail_meta=g et_post_meta( $thumbnail_id, '_wp_attachement_image_alt', true ); ?>
        <img src="<?php echo $thumbnail_url[0]; ?>" alt="<?php echo $thumbnail_meta; ?> " class="resim-stil">
        <h2>
            <a class="baslik" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        </h2>
    </li>
    
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
</ul>

Bunları kendinize  göre düzenleyebilirsiniz.

  • ‘cat’=> 2 yazan yerdeki 2 rakamı bizim konuları çekeceğimiz listenin id sidir.
  • ‘posts_per_page’ => 5 yazan yerdeki 5 rakamı da 5 tane konu çekileceğini  gösterir.

Css ve html tasarımında ul  ve li kullanımı şu şekildedir.

<ul> Genel çerçeve
<li> iç çerçeve
</li>
</ul>

Buradaki dış çerçeve döngünün içinde olduğu çerçevedir. Eğer  kodları ul dışına atarsanız bu sefer genel çerçeve içinde tekrar etmesi gereken yazılar genel çerçevenin  dışında tekrar eder. Paylaştığımız kodda li etiketleri kodun içinde gömülü olduğundan li etiketleri belirlediğiniz  rakam kadar döngüye girer ve yazılar listelenir.

Örneği daha önceden 2 yazı çekmek için kullanmıştım. Sonuç bu resimdeki gibi oldu.

Resimlerin çıkmasını istemiyorsanız  şu kodu kullanın:

<ul class "">
    <?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
    <?php endwhile; ?>
    <?php endif; ?>
    <?php wp_reset_query(); ?>
    <?php $paged=g et_query_var( 'paged') ? get_query_var( 'paged') : 1; $args=a rray( 'post_type'=> 'post','cat'=> 2,'posts_per_page' => 5, 'paged' => $paged); // Buradaki 2 ('cat'=>2) rakamı sizin kategorinizin id sidir. $loop = new WP_Query( $args );?>
    <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    
    <li>
        <h2>
            <a class="baslik" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        </h2>
    </li>
    
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
</ul>

Başlıkların çıkmasını istemiyorsanız  sadece resimler çıksın yeter diyorsanız da şu kodu kullanın:

<ul class "">
    <?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
    <?php endwhile; ?>
    <?php endif; ?>
    <?php wp_reset_query(); ?>
    <?php $paged=g et_query_var( 'paged') ? get_query_var( 'paged') : 1; $args=a rray( 'post_type'=> 'post','cat'=> 2,'posts_per_page' => 5, 'paged' => $paged); // Buradaki 2 ('cat'=>2) rakamı sizin kategorinizin id sidir. $loop = new WP_Query( $args );?>
    <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    
    <li>
        <?php $thumbnail_id=g et_post_thumbnail_id(); $thumbnail_url=w p_get_attachment_image_src( $thumbnail_id, 'thumbnail-size', true ); $thumbnail_meta=g et_post_meta( $thumbnail_id, '_wp_attachement_image_alt', true ); ?>
        <img src="<?php echo $thumbnail_url[0]; ?>" alt="<?php echo $thumbnail_meta; ?> " class="resim-stil">
    </li>
    
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
</ul>

Hiçbir şey  çıkmasın diyorsanız da boş bırakın gitsin.

Başlığın altında makalenin giriş kısmı yazmıyor. Başlığın hemen altındaki bölüme şu kodu eklerseniz ve temanızın function.php dosyası the_excerpt destekliyorsa başlıktan sonra  makalenizin bir bölümü çıkar.

<?php the_excerpt(); ?>

The_excerpt makalenin giriş bölümünü çağırmaya yarayan fonksiyonun ismidir. Olur da  hata verirse yada  konu yazısı başlığın altında çıkmazsa function.php  dosyasına the_excerpt tanımlamanız gerekiyor. Bunu yapmak için de aşağıdaki kodu function.php  dosyasında uygun bir yere yapıştırın.

function get_excerpt_by_id($post_id){
    $the_post = get_post($post_id);
    $the_excerpt = $the_post->post_content;
    $excerpt_length = 35; //bu kaç karakterin çıkacağını gösterir
    $the_excerpt = strip_tags(strip_shortcodes($the_excerpt));
    $words = explode(' ', $the_excerpt, $excerpt_length + 1);

    if(count($words) > $excerpt_length) :
        array_pop($words);
        array_push($words, '…');
        $the_excerpt = implode(' ', $words);
    endif;

    $the_excerpt = '<p>' . $the_excerpt . '</p>';

    return $the_excerpt;
}

$excerpt_length = 35; satırındaki 35 rakamı kaç karakter  çıkacağını gösterir. tema düzenine göre uygun rakamı girmeniz gerekiyor.

Mintik senin düşüncelerini merak ediyor. Bir yorum yaz