WordPress İçeriğe Karakter Sınırı Koymak

Merhaba, bir arkadaş sormuş cevap vereyim istedim. WordPress ile içeriğe nasıl limit koyabiliriz sorusuna bir kaç farklı yöntem ile cevap verebiliriz.

1. Yöntem Özet Yöntemidir

<?php the_content();?>

yerine aşağıdaki kodu koyabilirsiniz. Bu varsayılan olarak özet kısmı belirli bir karakter çeker, siz bu karakterlerin sayısını functions.php ile kontrol edebilirsiniz. Bazı temalarda bu fonksiyon yazılı olarak gelir. Ona dikkat ederseniz sevinirim.

<?php the_excerpt();?>

Karakter sınırını kontrol etmek için de functions.php dosyasına

function custom_excerpt_length( $length ) {
return 20;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

ekleyebilirsiniz.

2. Yöntem Content’e Karakter Sınırı Koymaktır.

functions.php dosyasına aşağıdaki kodları ekleyiniz.

function icerik_limit($content, $ilimit = false)
{
$limit = ($ilimit) ? $ilimit : 250;
$pad="...";
$content = strip_tags($content);
if(strlen($content) > $limit)
{
$content = substr($content,0,$limit);
}
echo $content.$pad;
}

Daha sonra sitede içeriğe nerede limit koymak istiyorsanız. Örnek veriyorum ana sayfada ise temanın index.php veya özel ana sayfa şablonunda gidip,

<?php the_content(); ?>

yerine

<?php icerik_limit(get_the_content(),600); ?>

Buradaki 600 karakter sayını belirtmektedir.

3. Yöntem

<?php the_content(); ?>

yerine

<?php $content = get_the_content(); echo mb_strimwidth($content, 0, 400, '...');?>

şeklinde de içeriğe limit koyabilirsiniz.

Kolay gelsin.

WordPress Kendi Eklediği Ortamı Gösterme

Geçen gün wordpress ile bir ilan sitesi tasarlarken lazım oldu. Öncelikle siteye kullanıcılar içerik sağlayıcısı olarak üye olabileceklerdi. Kullanıcı rolleri gereği, içerik sağlayıcılar yazdıkları içeirklere ortam ekleyemezler. Öncelikle onlara ortam ekleme izni vermek lazımdı. Temanın functions.php dosyasına aşağıdaki kodları ekleyerek onların ortam eklemesine imkan sağladık.

//-->Üyelere Resim Yükleme İzni Ver 
    if ( current_user_can('contributor') && !current_user_can('upload_files') )
    add_action('admin_init', 'allow_contributor_uploads');
    function allow_contributor_uploads() {
        $contributor = get_role('contributor');
        $contributor->add_cap('upload_files');
    }  

Daha sonra da diğer kullanıcıların ekledikleri ortamları içerik yazdıkları özel sayfada göremesinler diyerek, sadece kendi ekledikleri ortamları göstermek için de aşağıdaki kodları kullandım.

//--> Kendi Eklediği Resmi Görsün Sadece
add_action('pre_get_posts','ortami_kes');

function ortami_kes( $wp_query_obj ) {
    global $current_user, $pagenow;
    if( !is_a( $current_user, 'WP_User') )
    return;
    if( 'admin-ajax.php' != $pagenow || $_REQUEST['action'] != 'query-attachments' )
    return;
    if( !current_user_can('manage_media_library') )
    $wp_query_obj->set('author', $current_user->ID );
    return;
}

Tabi wordpress yönetici paneline girdiğinde kullanıcı diğer eklenmiş resimleri görebiliyor.

WordPress Yorumları SQL İle Kontrol Etmek

wordpress-yorumlar-sqlMerhaba, wordpress yorum yönetimi bazen can sıkıcı bir hal alabiliyor. Spamlara karşı koruma almadıysanız hele bu durum daha da başa bela oluyor. Yada ne bileyim yorumlar ile ilgili topluca bir kontrol sağlamak istiyorsunuz. İşte bu konular ile ilgili sorunların çözümü için bir kaç SQL sorgusunu çalıştırmamız yeterli gelebilir.

Lütfen Dikkat

  • Bu işlemleri yapmadan önce lütfen veritabanınızı yedekleyiniz.
  • Bu işlemleri yapabilmeniz için wordpress kurulumu yaparken seçmiş olduğunuz tablo ön ekinin “wp_” olması lazımdır. Varsayılan olarak o gelir.

Tüm Spam Yorumları Silmek

WordPress kullanıcıların çoğu sıkıntısından birisi de spam olarak gelen yorumlardır. Özellikle son zamanlar yabancı spamcıların bile Türk sitelerine translate aracılığıyla yorum attığı da gözlenirken, spam yorumlardan nasıl kurtulunur bunu konuşalım.

Kimi zaman sitenize bir kaç gün bakamazsınız, döndüğünüzde panelinizde spam yorumlar o kadar çoğalmıştır ki, arada normal yorum var mı diye tek tek gezersiniz yorumlar arasında. Ancak spam yorumları silmenin çok basit bir yolu var. Nasıl mı?

Veritabanımızın yönetim paneline yani phpmyadmin’e giriyoruz. Sorgu çalıştırma mantığıyla aşağıdaki kodu çalıştırıyoruz.

DELETE from wp_comments WHERE comment_approved = 'spam'

İki Tarih Arasındaki Tüm Yorumlarını Silmek

Sitenize herhangi bir süre aralığında spam yorum saldırısı gelmiş olabilir. Bazen bu sayı 1000’leri bile geçer. Tek tek silmek can sıkıcıdır. O yüzden tek seferde iki tarih arasındaki tüm yorumları silebilirsiniz.

DELETE FROM wp_comments
WHERE comment_date > '2013-11-15 01:10:04'
AND comment_date <= '2013-11-20 00:10:04'

Onay Bekleyen Tüm Yorumları Silmek

Onay kuyruğunda olan yorumlar bazen spam olarak birikir, işte bu onay kuyruğunda bekleyen yorumları tek bir satırlık sorgu ile silebilirsiniz.

DELETE FROM wp_comments WHERE comment_approved = '0'

Aynı Anda Tüm Yazılarda Yorumları Devre Dışı Bırakmak

Tek tek yazılardaki yorumları devre dışı bırakmak mı? Yok artık, o kadar da değil diyerek tüm yazılarda yorumları devre dışı bırakabilirsiniz.

UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE comment_status = 'open'

Eski Yazılarda Yorumları Devre Dışı Bırakma

Belirli bir tarihten önceki yazılarınızda artık yorumları devre dışı bırakmak mı istiyorsunuz. Buyrun buradan yakın.

UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2014-01-01' AND post_status = 'publish'

Website Bağlantısı İçeren Yorumları Silme

Yorumlarda yazar web site urlsi kullanılmış ve sizin içinde artık bu durum rahatsız edici olduysa, URL kullanılan tüm yorumları silebilirsiniz.

DELETE from wp_comments WHERE comment_author_url LIKE "%nastyspamurl%" ;

Yorumlardaki Bir Kelimeyi Değiştirmek

Yorumlara baktığınızda bir kelimenin yanlış olduğunu veya onun düzelmesi gerektiğini düşündünüz. Yapmanız gereken şey aşağıdaki sorguyu çalıştırmaktır. Tabiki de degisecek_kelime ile yeni_kelime yerlerini de değiştirerek..:)

UPDATE wp_comments SET `comment_content` = REPLACE (`comment_content`, 'degisecek_kelime', 'yeni_kelime')
<h2>Sadece Kayıtlı Kullanıcılara Yorumları Açmak</h2>
Sitenizde almış olduğunuz karar gereği sadece kayıtlı kullanıcıların yorum yapmasını istiyorsunuz. Tek tek kim uğraşacak bununla değil mi?

UPDATE wp_posts SET comment_status = 'registered_only'

Sanırım bunlar yeter de artar bile 🙂 Herhangi bir konuda destek almak için lütfen yorum yapmaktan çekinmeyiniz.

WordPress Popüler Yazılar (Özel Alana Göre)

Merhaba, baya oldu wordpress ile ilgili paylaşım yapmayalı, geçen günlerde bir video sitesi düzenlemesi işi geldiğinde lazım olmuştu. Arkadaş sidebar da popüler yazıları göstermek istediğini belirtti. Kullanılan eklenti olup olmadığına baktığımda WP-Postviews eklentisinin olduğunu gördüm. Bu eklenti bilinildiği üzere yazılarımızda views diye bir özel alan oluşturarak yazı görüntülenme sayısını tutuyor.

Popüler yazıları da bununla göstermek için mantık olarak özel alanı views olarak yazıları listeletmek uygundu.

Öncelikle temamızın functions.php dosyasına aşağıdaki kodlarımı ekliyoruz.

/* En Çok Görüntülenen Yazılar */
function wpb_set_post_views($postID) {
    $count_key = 'wpb_post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        $count = 0;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
    }else{
        $count++;
        update_post_meta($postID, $count_key, $count);
    }
}
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
/* En Çok Görüntülenen Yazılar */

Daha sonra temamızda nereye yerleştirmek istiyorsak aşağıdaki kodları da yerleştirelim

<h2>En Çok Okunanlar</h2>
<?php $popularpost = new WP_Query( array( 
'posts_per_page' => 12, // Listelenecek Yazı
'meta_key' => 'views', 
'orderby' => 'meta_value_num', 
'order' => 'DESC'
) );
while ( $popularpost->have_posts() ) : $popularpost->the_post();
?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?>(<?php if(function_exists('the_views')) { the_views(); } ?>)</a>
</li>
   
<?php endwhile; ?>

Bu şekilde sadece popüler yazılarımızı listeletmiş olduk. Tabi buna daha bir çok fonksiyon eklenebilir. Burada sadece yazı başlıkları çekilmektedir.

WordPress 3.8 Yönetim Paneli Tek Sütun

WordPress’in yönetim panelini tek sütun haline mi getirmek istiyorsunuz. İki sütun halinden memnun değilseniz, isterseniz tek sütuna basit bir kaç kod ile geçebilirsiniz. Kodları temanızın functions.php dosyasına ekleyiniz.

function shapeSpace_screen_layout_columns($columns) {
	$columns['dashboard'] = 1;
	return $columns;
}
add_filter('screen_layout_columns', 'shapeSpace_screen_layout_columns');

function shapeSpace_screen_layout_dashboard() { return 1; }
add_filter('get_user_option_screen_layout_dashboard', 'shapeSpace_screen_layout_dashboard');

Görüntü:

wordpress-yonetim-paneli-tek-sütun

Her şey bu kadar basit 🙂