Özellik

WordPress Shortcode’u Yorum Alanında Çalıştırma

Eğer içeriklerinizde kendi yazdığınız ya da bulduğunuz bir Shortcode kullanıyorsanız bu Shortcode büyük ihtimal ile WordPress‘in yorum alanında çalışmayacaktır. Bunun nedeni ise Shortcode’ların içerik odaklı olarak tasarlanmış olması ve yorum alanı için devre dışı bırakılmış olmasıdır. Sadece sonradan eklenen Shortcode’lar için değil yüklediğiniz eklentiler ile gelen veya kullandığınız temada bulunan çeşitli Shortcode’larda genellikle (içerisinde bir yorum alanı kodu yok ise) yorum alanında çalışmayacaktır.

Wordpress 5.0 ile gelen Gutenberg yazı editörünün yarattığı imkanlar ile klasik Shortcode mantığı yerini Gutenberg editörün block ekleme özelliği alıyor. Böylelikle artık daha az bilgi sahibi olan WordPress kullanıcıları da Shortcode ile uğraşmaksızın görsel düzenleyici üzerinden işlem yapabilecek.

Shortcode’ları yorum alanınında çalıştırmak için ise bir filtre atamanız yeterli olacaktır. Aşağıda yazılı olan php kodlarını temanızın functions.php dosyasında uygun bir yere eklemeniz yeterli olacaktır.

add_filter( 'comment_text', 'do_shortcode' );

Kodları <?php ile ?> arasına eklediğinizden emin oldun. En sona ve en başa eklediğinizde <?php’den önce yada ?>’den sonra eklemiş olacağınız için kodlar çalışmayacak, hatta sitenin açılmamasına sebep olacaktır

WordPress kısa adres edin butonu ekleme

Geçtiğimiz günlerde Wordpress için yeni bir güncelleme daha geldi. Caz müzisyeni Clifford Brown adıyla karşımıza çıkan Worpdress 4.4 güncellemesi bir çok yeniliğin yanı sıra sorunları da beraberinde getirdi. Bir çok kişi forumlarda temalarının yeni sürümde özelleştirilemediğini yada özelleştirme konusunda sorun yaşadıklarını belirtirken, benim dikkatimi ise bolca kullandığım Kısa adres edin butonu çekti.

Ne hikmetse artık bir yazı yayınladığımızda kalıcı bağlantılardan arındırılmış kısa adresi almamız için ortada bir buton yoktu. Bende biraz sayada gezinip butonun yer değiştirmiş olabileceğini düşündüm ancak buton yer değiştirmemiş, tamamen kaldırılmıştı. Bunun üzerine Webmaster Forumu R10‘da konu açtım ve sağ olsun sun truser sorunumun çözümü için konuyu cevapladı. Ve bende sorunun çözülmesi için bir rehber hazırlamak istedim. Sorunu yaşayan arkadaşlarda burada anlatılanları uygulayarak WordPress sitelerine tekrar Kısa adres edin butonu ekleyebilirler.

Öncelikle yapmanız gereken FTP programı ile sitenizin ana dizinine bağlanmanız ve /public_html/wp-admin/ klasörüne giriş yapmanız. Daha sonra düzenlemeniz gereken edit-form-advanced.php dosyasının bir yedeğini almalısınız. Yeni sürümde silinen kodları dosyaya eklemek için dosyayı uygun bir program ile açın ve aşağıda yazan kodları bulun.

Fires before the permalink field in the edit form.

Daha sonra aradığınız yazının bulunduğu aşağıdaki kodların bütününü seçip en alttakiler ile değiştiriyorsunuz.

/**
 * Fires before the permalink field in the edit form.
 *
 * @since 4.1.0
 *
 * @param WP_Post $post Post object.
 */
do_action( 'edit_form_before_permalink', $post );
?>
<div class="inside">
<?php
if ( $viewable ) :
$sample_permalink_html = $post_type_object->public ? get_sample_permalink_html($post->ID) : '';

// As of 4.4, the Get Shortlink button is hidden by default.
if ( has_filter( 'pre_get_shortlink' ) || has_filter( 'get_shortlink' ) ) {
	$shortlink = wp_get_shortlink($post->ID, 'post');

	if ( !empty( $shortlink ) && $shortlink !== $permalink && $permalink !== home_url('?page_id=' . $post->ID) ) {
    	$sample_permalink_html .= '<input id="shortlink" type="hidden" value="' . esc_attr($shortlink) . '" /><a href="#" class="button button-small" onclick="prompt(&#39;URL:&#39;, jQuery(\'#shortlink\').val()); return false;">' . __('Get Shortlink') . '</a>';
	}
}

if ( $post_type_object->public && ! ( 'pending' == get_post_status( $post ) && !current_user_can( $post_type_object->cap->publish_posts ) ) ) {
	$has_sample_permalink = $sample_permalink_html && 'auto-draft' != $post->post_status;
?>
	<div id="edit-slug-box" class="hide-if-no-js">
	<?php
		if ( $has_sample_permalink )
			echo $sample_permalink_html;
	?>
	</div>
<?php
}
endif;
?>
</div>
<?php
wp_nonce_field( 'samplepermalink', 'samplepermalinknonce', false );
?>
</div><!-- /titlediv -->
<?php
}

Üstekilerin yerine aşağıdakiler gelecek. (üstteki kodlar wordpress sürümünüze bağlı olarak yazanlardan farklı olabilir, yinede başladığı yer ile bittiği yere dikkat ederek aşağıdakiler ile değiştirmelisiniz)

/**
 * Fires before the permalink field in the edit form.
 *
 * @since 4.1.0
 *
 * @param WP_Post $post Post object.
 */
do_action( 'edit_form_before_permalink', $post );
?>
<div class="inside">
<?php
if ( $viewable ) :
$sample_permalink_html = $post_type_object->public ? get_sample_permalink_html($post->ID) : '';

// As of 4.4, the Get Shortlink button is hidden by default.
	$shortlink = wp_get_shortlink($post->ID, 'post');

	if ( !empty( $shortlink ) && $shortlink !== $permalink && $permalink !== home_url('?page_id=' . $post->ID) ) {
    	$sample_permalink_html .= '<input id="shortlink" type="hidden" value="' . esc_attr($shortlink) . '" /><a href="#" class="button button-small" onclick="prompt(&#39;URL:&#39;, jQuery(\'#shortlink\').val()); return false;">' . __('Get Shortlink') . '</a>';
	}

if ( $post_type_object->public && ! ( 'pending' == get_post_status( $post ) && !current_user_can( $post_type_object->cap->publish_posts ) ) ) {
	$has_sample_permalink = $sample_permalink_html && 'auto-draft' != $post->post_status;
?>
	<div id="edit-slug-box" class="hide-if-no-js">
	<?php
		if ( $has_sample_permalink )
			echo $sample_permalink_html;
	?>
	</div>
<?php
}
endif;
?>
</div>
<?php
wp_nonce_field( 'samplepermalink', 'samplepermalinknonce', false );
?>
</div><!-- /titlediv -->
<?php
}

Evet yukarıda anlatılanları doğru bir şekilde yaptıysanız kısa adres edin butonu artık olması gereken yerde olacaktır. Ayrıca belirteyim eğer WordPress’e daha sonra güncelleme gelirde bu güncelleme edit-form-advanced.php dosyasını kapsarsa güncelleme ile dosya değişeceği için buton yine kaydolacaktır, ancak anlatılanları tekrar yaparak butonu tekrar ekleyebilirsiniz. Eğer anlatılanları yapamadıysanız yada sorun yaşıyorsanız aşağıdan yorum bırakarak benimle iletişime geçebilirsiniz. Sizin için çözüm üretmeye çalışırım.

WordPress Yazı Editörüne Sayfalandırma Ekleme

Bu yazımızda WordPress ile birlikte varsayılan olarak gelen içerik sayfalandırma fonksiyonunu yazı editörüne nasıl ekleneceğini anlatmaktayım.

Öncelikle bu editör ile ilgili birkaç bilgi vermem gerekir ise WordPress‘in içerisinde var olan bir özelliktir ve extra bir fonksiyon eklemenize gerek yoktur, bu yazıda bu fonksiyonun kullanımını daha pratik bir hale getirmek için yazı yazdığımız alanın üstünde bulunan menüye butonunu eklemeyi anlatacağım.

Genellikle varsayılan olarak Worpdress panelindeki editörde bu buton vardır ancak bazı durumlarda kaybolabiliyor, örnek vermek gerekir ise özel sayfalandırma özelliğine ait bir tema kullanıyor iseniz varsayılan sayfalandırma butonu editörde görünmez halde olacaktır, yinede çalışır ve Görsel editör yerine Metin editörüne geçip sayfalandırma yapmak istediğiniz yere

<!--nextpage-->

yazar iseniz fonksiyonu aktif edebilirsiniz ancak çok fazla sayfalandırma yapıyorum ve bu kod ile uğraşmak istemiyorum butona tıklayayım imlecin olduğu yere otomatik eklesin derseniz aşağıdaki kodu temanızın functions.php dosyasında müsait bir yere eklemeniz gerekmektedir.

Not: dosyanın başındaki <?php kodundan sonra yada dosyanın sonundaki ?> dan önce ekler iseniz sorun yaşamazsınız.

/////////////////////////////////////////////////////////////////////////////////
//////  WordPress Yazı Editörüne Sayfalandırma Ekleme codex.dincmedya.com.tr  //////
/////////////////////////////////////////////////////////////////////////////////
add_filter('mce_buttons','wysiwyg_editor');
function wysiwyg_editor($mce_buttons) {
$pos = array_search('wp_more',$mce_buttons,true);
if ($pos !== false) {
$tmp_buttons = array_slice($mce_buttons, 0, $pos+1);
$tmp_buttons[] = 'wp_page';
$mce_buttons = array_merge($tmp_buttons, array_slice($mce_buttons, $pos+1));
}
return $mce_buttons;
}
/////////////////////////////////////////////////////////////////////////////////
//////  WordPress Yazı Editörüne Sayfalandırma Ekleme codex.dincmedya.com.tr  //////
/////////////////////////////////////////////////////////////////////////////////

Bu kodu functions.php dosyanıza eklediğinizde yazı editörünüzün 1. satır 14. sütünün da “Sayfa arası” butonu aktif olacaktır.

Aklınıza takılan her türlü soruyu ve yeni konu isteğini yorum yazarak belirtebilirsiniz, bir sonraki konuda görüşmek dileği ile, iyi çalışmalar.

WordPress Revizyon Sistemi

WordPress revizyon sistemini kısaca açıklamak gerekirse   WordPress 2.6 sürümü ilen gelen bu özellik ile yazdığınız her yazıyı kaydet dedikten sonra bu sistem otomatik olarak bir kopyasını da taslak olarak kaydederek sizi beklenmeyen durumlara karşı korur. Bir yazı yazıyorsunuz birden elektrikler kesildi ve tüm emeğiniz boşa gitti. İşte bu noktada bizlere WordPress’in revizyon sistemi devreye giriyor ve yazıyı yazarken belli aralıklarla kaydettiğimiz için en son kaydedilen yerden yazıyı kurtarma şansı elde ediyorsunuz. Ya da internet bağlantınız koptu, sunucu ile bağlantı kesildi vb. gibi durumlarla da aynı sorunları yaşamanız muhtemel.

Fakat ne yazık ki WordPress varsayılan olarak bu taslakların sayısında herhangi bir sınırlama getirmez ve haliyle veritabanında çok fazla yer kaplar. Bu şu anlama geliyor, birkaç sayfa uzunluğunda bir yazı yazıyoruz ve bu yazının veritabanına tekrar kez kaydededildiğini düşünürsek veritabanında ne kadar yer kaplar artık siz hesap edin.

Bu sorunu gidermek için wp-config.php dosyasına aşağıdaki kodu ekleyerek daha mantıklı bir değer girerek revizyonların sayısını azaltabiliriz:

define( 'WP_POST_REVISIONS', 3 );

Eğer ki revizyon sistemini tamamen kapatmak isterseniz de aşağıdaki kodu eklemeniz yeterli olacaktır:

 define( 'WP_POST_REVISIONS', false );

WordPress’de yazı ve sayfalar her altmış saniyede otomatik olarak kaydedilir. Bu aralıkları da aşağıdaki kodu wp-config.php dosyasına ekleyerek düzenleyebilirsiniz.

 define( 'AUTOSAVE_INTERVAL', 160 ); // Saniyeler