PHP

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 Yazı içi Sayfalandırma Yapma (Eklentisiz)

Bu günden itibaren bir çok konumda sayfalandırma yapmayı planlıyorum. Çok uzun bir yazı yazdığımda yada bir çok görseli olduğu bir konuda sayfa çok uzuyor bunu kısaltmak amacıyla yazıları sayfalara bölmeye karar verdim karşıma bir problem çıktı ve bu yazıyla bu problemi yaşayan diğer arkadaşlara yardım etmeyi amaçlıyorum.

Kısaca açıklamak gerekirse yazılara sayfalara bölme işlemi nedir, ne işe yarar ve nasıl yapılır bunları size açıklayacağım. WordPress bize yazıyı sayfalara bölmemiş için gerekli altyapıyı sunmuş bulunuyor yazılarımıza aşağıda belirteceğim kodları koyduğumuzda sayfa bölünmüş oluyor ve kaç kez kullanırsak o kadar çok sayfamız oluyor bunun bir sınırı yok. Sayfalandırma imkanını bize her ne kadar WordPress sunmuş olsa da biz her zaman WordPress in temasını kullanmıyoruz, kullandığımız temada küçük bir kod eksik bizi bu eklenti den mahrum bırakabiliyor üzülmeyin bunun da çözümü bu yazıda mevcut birazdan onuda anlatacağım.

Sayfaları neden bölüyoruz sorusuna gelecek olursak kişiden kişiye değişecek bir çok cevap verilebilir. mesela ben bir konu anlatımı yaptığımda 1. sayfa Hakkında 2.sayfa kurulum 3.sayfa ekran görüntüleri…vs şeklinde bölümlere ayırıyorum hem isteyen istediği yerden okuyor hemde konu çok karışık olmuyor. yada uzun bir makale yazan birsi gelen okurlarının göründe yazının çok görünüp okunmamasını sağlamak için sayfalara bölebilir. yada bir fotoğraf galeri olarak kullanabilir her sayfaya bir fotoğraf ekleyebilir. Bu yazımı da örnek olması için bu şekilde yapacağım.

1. Bölüm (kullanım)

<!--nextpage-->

Özelliği kullanmak istiyorsanız yukarıda verdiğim kodları yazı editörünüzün “Metin” bölümüne geçtikten sonra yazınızın bölünmesini istediğiniz yere eklemeniz ve yayınlamanız yeterli olacaktır. Yayınladınız ancak bir sebepten dolayı ilk sayfa görünüyor 2 ve diğer sayfalar gözükmüyor bu durumda temanız da bu özelliği kullanmanızı sağlayan kodlar bulunmuyor demektir bunun çözümü de 3. sayfada mevcut 3. sayfa da bu özeliğin olmadığı WordPress temalarına özelliği entegre etmeyi anlatacağım.

2. Bölüm (enteğre)

Öncelikle temanızın yazı single.php yada isterseniz sayfa page.php şablonu olabilir açıyorsunuz ve aşağıdaki kodu arıyorsunuz bulduktan sonra,

<?php the_content(''); ?>

aşağıdaki kodları hemen altına ekliyorsunuz ve kaydediyorsunuz iştem bu kadar basit artık rahat rahat kullanabilirsiniz.

<?php wp_link_pages(array('before' => '<p><strong>Sayfa:</strong> ', 'after' => '</p>', 'link_before' => '<strong>', 'link_after' => '</strong>')); ?>

Ve Son olarak 2.sayfada bahsettiğim gibi aşağıdaki kodları yazı editörünüzün “Metin” bölümüne geçtikten sonra yazınızın bölünmesini istediğiniz yere eklemeniz.

<--nextpage-->

3. Bölüm (düzenleme)

Yazının son sayfasında bulunuyorsunuz yani siz daha iyi bir görünüm elde etmek istiyorsunuz o halde yapmanız gereken az önce eklediğiniz kodları kaldırarak yerine daha güzel bir görünüm sunan şu kodları eklemeniz olacak.

<div style="border-left:1px solid #ddd;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-top:2px solid #ddd;background-color: #fff;margin-bottom:10px;padding:10px;font-size:15px;font-weight:bold;font-family: arial, sans serif;">
<?php wp_link_pages(array('before' => '<p><strong>Yazı Sayfaları:</strong> ', 'after' => '</p>','next_or_number' => 'number')); ?>
</div>

işte bu kadar güzel günlerde kullanmanız dileğiyle…