Tüm WordPress temaları functions.php dosyası ile birlikte gelir. Bu dosya bir eklenti görevi görür ve WordPress sitenizde çok güzel ve faydalı şeyler yapmanızı sağlar. Bu yazıda, WordPress functions.php dosyanız için en kullanışlı işlevlerden bazılarını göstereceğim.
Öncesinde Funtions.php Dosyası Nedir Diye Merak Ediyorsanız;
Functions.php dosyası olarak bilinen fonksiyonlar dosyası bir WordPress tema dosyasıdır. Bu dosya tüm ücretsiz ve ücretli WordPress temaları ile birlikte gelir.
Bu dosyanın amacı, tema geliştiricilerin tema özelliklerini ve işlevlerini tanımlamalarına izin vermektir. Bu dosya sadece bir WordPress eklentisi gibi işlev görür ve WordPress’de kendi özel kod parçacıklarınızı eklemek için kullanılabilir.
WordPress ile ilgili yazılar yazan bir çok sitede yapmak istediğiniz işlevler ile ilgili verilen kod parçacıklarını functions.php dosyanıza eklemeniz istenir.
İşte, siz bu kod parçacıklarını functions.php dosyanıza eklediğinizde aslında sitenize küçük çaplı bir wordpress eklentisi eklemiş olursunuz.
# Functions.php dosyasına nasıl kod eklenir veya siteye özel eklenti oluşturma başlıklı yazılarım hemen altta paylaştığım kodları sitenize eklemenizde size oldukça yarar sağlayacaktır.
Functions.php Dosyasına Ekleyebileceğiniz 25 Faydalı Kod
Özellik:Tüm Site Ayarlarını Görüntüleyen Gizli Yönetici Özelliklerini Etkinleştirin.
Bu küçük kod parçası oldukça hoş bir şey yapıyor. Sitenizin bağlı olduğu veritabanındaki tüm ayarları admin paneli üzerinden değiştirmenize imkan sağlıyor.
WordPress’in özellikleri arasında yer alan ancak varsayılan olarak aktif olmayan “tüm ayarlar” bağlantısını, admin panelinde ayarlar menüsünün altına ek bir seçenek olarak ekliyor.
Ayrıca aşağıdaki kodu functions.php dosyanıza eklediğinizde ( bkz: functions.php dosyasına nasıl kod eklenir ) bu tüm ayarlar sekmesini yönetici kullanıcısı görebilirken, diğer tüm kullanıcılar için gizler.
// Tum ayarlar icin ozel idari - tum ayarlar menu baglantisi
function all_settings_link() {
add_options_page(__('All Settings'), __('All Settings'), 'administrator', 'options.php');
}
add_action('admin_menu', 'all_settings_link');
Özellik:Admin Paneli Giriş Logusunu Değiştirme
Sitenizde üyelik sistemi veya çoklu yazar sistemi varsa, wordpress giriş panelinde bulunan logonuzu değiştirmek isteyebilirsiniz. Bunun için alttaki kodu functions.php dosyanıza ekleyin;
// WordPress giriş sayfası logusunu değiştirme
function custom_loginlogo() {
echo '<style type="text/css">
body.login div#login h1 a {
background-image: url(https://sizinsiteniz.com/logo.png);
}
.login h1 a {
background-size: 269px;
width: 269px;
height:60px;
</style>';
}
add_action('login_head', 'custom_loginlogo');
Ardıdan wordpress admin paneli giriş logosunu hangi logo ile değiştirmek istiyorsanız, kod içerisinde bulunan URL adresini, logonuzun URL adresi ile değiştirin.
Logonuzun yükseklik ve genişlik ayarlarını ise yine kod içerisinde bulunan background-size, width ve height değerlerini değiştirerek ayarlayabilirsiniz.
Ayrıca bu işlem ile iligli wordpress giriş paneli logosu değiştirme başlıklı yazımdan detaylı bilgi alabilirsiniz.
Buna ek olarak admin giriş panelini komple özelleştirmek istiyorsanız, giriş paneli tasarımı değiştirme başlıklı yazıma bakabilirsiniz.
Özellik:WordPress Güncelleme Bildirilerini Admin Dışındaki Tüm Kullanıcılara Kapatma:
Altta verdğim kodu functions.php dosyanıza eklediğinizde admin kullanıcıları dışında hiç bir kullanıcı wordpress sitenize giriş yaptığıda wordpress güncelleme bildirimlerini görmez.
// WordPress guncelleme bildirimlerini admin kullanicilari disinda kalan kullanicilara kapat
global $user_login;
get_currentuserinfo();
if (!current_user_can('update_plugins')) { // Kullanıcının eklentiyi güncelleme yetkisi olup olmadigina bakar
add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
}
Özellik:WordPress jQuery Dosyalarını Google CDN Üzerinden Çekme:
WordPress ile gelen yerel jQuery komut dosyanızın Google kitaplığından, yani Google CDN üzerinden çekmeniz web sitesi performansını optimize eder ve web sitesi yükleme hızını arttırır.
WordPress jQuery dosyalarını google CDN üzerinden çektiğinizde sunucunuza binen yük Google sunucu altyapısı üzerinden dağıtılacağından sunucunuzdan daha az dosya yüklenecek ve sunucunuzun yükü azalacaktır.
Kendi VPS’nizi kullanıyorsanız, jQuery’yi başka kaynaklardan yüklemenizi tavsiye etmiyorum, ancak paylaşımlı hosting paketi kullanıyorsanız, bu yöntem kesinlikle site performansınıza olumlu katkıda bulunacaktır.
Altta verdğim kodu functions.php dosyanıza eklediğinizde WordPress jQuery dosyaları artık google kütüphanesi üzerinden çekilecektir. ( WordPress 3.1 ve üzeri versiyonlar için uyumludur )
//jQuery Google Library
function replace_jquery() {
if (!is_admin()) {
// comment out the next two lines to load the local copy of jQuery
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js', false, '1.11.3');
wp_enqueue_script('jquery');
}
}
add_action('init', 'replace_jquery');
Özellik:Güvenlik için WordPress Versiyon Bilgisini Kaldırma:
WordPress sürüm numaranızı herkese açık olarak göstermeyin. Bu bilgiyi herkese açık hale getirmek, saldırganların belirli bir sürümdeki bilinen güvenlik açıklarından yararlanmalarını kolaylaştırır.
Altta verdiğim kodu functions.php dosyanıza eklediğinizde sitenizde hangi wordpress sürümünü kullandığınızı gizlemiş olursunuz.
// wordpress versiyonu gizleme
function complete_version_removal() {
return '';
}
add_filter('the_generator', 'complete_version_removal');
Özellik:WordPress Sitenizin Ön Yüzü Yorumlar Kısmına Sil ve İstenmeyen Linkleri Ekleme ve Bu Şekilde Yorumları Sitenizin Ön Yüzünden Spam’a Atarak ya da Silerek Yönetme:
Alttaki kodu funcitons.php dosyanıza ekleyerek sitenizin ön yüzünde bulunan yorumlar kısmına yapılan yorumlar altına istenmeyen ve sil linkleri ekleyebilirsiniz. Böylece wordpress sitenizin ön yüzünden de yorumları kısmen yönetebilirsiniz.
// yorumlar istenemeyen & sil linkleri ekleme
function delete_comment_link($id) {
if (current_user_can('edit_post')) {
echo '| <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&c='.$id.'">del</a> ';
echo '| <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&dt=spam&c='.$id.'">spam</a>';
}
}
Özellik:Veritabanında Kayıt Altına Alınan Ön İzleme Sayısına Sınır Koyma:
Yazı yazarken yazınızın sitenizin ön yüzünde nasıl görüneceğini görmek için wordpress’in önizleme özelliğini kullandığınızda her bir önizleme veritabanınızda kayıt altına alınır.
Bir yazıyı onlarca kez önizleme özelliği kullanarak incelediğinizde ve sitenizde yüzlerce yazı yazdığınızda tüm bu kayıt altına alınan önizlemeler veritabanınıza muazzam bir yük bindirir.
Sitenizin veritabanına böyle bir yük bindirememek için önizleme kayıtlarını sınırlandırmak her wordpress kullanıcısının yapması gereken bir işlem diye düşünüyorum.
Hemen altta verdiğim kodu functions.php dosyanıza eklediğinizde kayıt altına alınan ön izleme taslaklarını max. 5 adet ile sınırlandırabilrisiniz.
/**
* Onizlemeleri wp-config.php dosyasinda belirtilmedikce funcitons uzerinden sinirlandirma
*/
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 5);
Özellik:Yeniden Boyutlandırılmış Resimleri Görünüm Açısından Netleştirme:
WordPress sitenizde bulunan JPEG resimlerini yeniden boyutlandırıldığında, biraz bulanık hale gelebildiklerini fark ettiniz mi?
İşte, alttaki kodu functions.php dosyanıza eklediğinizde yeniden boyutlandırdığınız ve bunun sonucunda bulanıklaşan resimleri keskinleştirerek daha net bir görüntü kazandırabilirsiniz;
Not: Bu özellik sadece JPEG fotmatındaki resimler içindir.
function
ajx_sharpen_resized_files( $resized_file ) {
$image = wp_load_image( $resized_file );
if ( !is_resource( $image ) )
return new WP_Error( 'error_loading_image', $image, $file );
$size = @getimagesize( $resized_file );
if ( !$size )
return new WP_Error('invalid_image', __('Could not read image size'), $file);
list($orig_w, $orig_h, $orig_type) = $size;
switch ( $orig_type ) {
case IMAGETYPE_JPEG:
$matrix = array(
array(-1, -1, -1),
array(-1, 16, -1),
array(-1, -1, -1),
);
$divisor = array_sum(array_map('array_sum', $matrix));
$offset = 0;
imageconvolution($image, $matrix, $divisor, $offset);
imagejpeg($image, $resized_file,apply_filters( 'jpeg_quality', 90, 'edit_image' ));
break;
case IMAGETYPE_PNG:
return $resized_file;
case IMAGETYPE_GIF:
return $resized_file;
}
return $resized_file;
}
add_filter('image_make_intermediate_size', 'ajx_sharpen_resized_files',900);
Özellik:“wordpress” Yazınca wp’nin bu kelimeyi Otomatik Olarak “WordPress” Şeklinde Yazmasını Kaldırma:
Bildiğiniz gibi, wordpress 3.0 üzerine güncellemesinden sonra artık sitenizde yazdığınız wordpress kelimelerini otomatik olarak yazı ön yüzüne “WordPress” olarak geçiriyor.
Eğer bu durumu rahatsız edici buluyorsanız hemen altta paylaştığım kodu functions.php dosyanıza ekleyerek bu özelliği etkisiz hale getirebilirsiniz.
// P filtresi kaldırma
if(function_exists('capital_P_dangit')) {
foreach ( array( 'the_content', 'the_title' ) as $filter )
remove_filter( $filter, 'capital_P_dangit', 11 );
remove_filter('comment_text', 'capital_P_dangit', 31 );
}
Özellik:Yazıların Özet Uzunluğunu Kelime Sayısı Olarak Değştirme:
WordPress’in yazı gösterimlerinde daha fazla oku linkinden önce yazı özeti için belirlediği kelime sayısı 55’dir. Eğer tema özellikleriniz arasında bu kelime sayısını değiştirme kısmı yoksa, bunu alttaki kodu functions.php dosyanıza ekleyerek de değiştirebilirsiniz.
Alttaki kodda bu kelime sayısı 100’e çıkartılmıştır. Eğer siz bu sayısı değiştirmek isterseniz, kod içerisinde bulunan 100 sayısını değiştirmeniz yeterli olacaktır.
function
new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');
Özellik:Admin Paneli Yazılar / Sayfalar Sekmesinde İçeriklerin Öne Çıkarılmış Görsellerini de Listeleme:
Altta verdiğim kodu functions.php dosyanıza eklediğinizde admin paneli yazılar / sayfalar sekmesinde bir de bu kısımlarda bulunan içeriklerin öne çıkarılmış görselleri de listelenir.
/****** Öne Çıkarılmış Görselleri Yazı/Sayfa Sekmesinde Gösterme ******/
if ( !function_exists('AddThumbColumn') && function_exists('add_theme_support') ) {
// for post and page
add_theme_support('post-thumbnails', array( 'post', 'page' ) );
function AddThumbColumn($cols) {
$cols['thumbnail'] = __('Thumbnail');
return $cols;
}
function AddThumbValue($column_name, $post_id) {
$width = (int) 35;
$height = (int) 35;
if ( 'thumbnail' == $column_name ) {
// thumbnail of WP 2.9
$thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
// image from gallery
$attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
if ($thumbnail_id)
$thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );
elseif ($attachments) {
foreach ( $attachments as $attachment_id => $attachment ) {
$thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
}
}
if ( isset($thumb) && $thumb ) {
echo $thumb;
} else {
echo __('None');
}
}
}
// for posts
add_filter( 'manage_posts_columns', 'AddThumbColumn' );
add_action( 'manage_posts_custom_column', 'AddThumbValue', 10, 2 );
// for pages
add_filter( 'manage_pages_columns', 'AddThumbColumn' );
add_action( 'manage_pages_custom_column', 'AddThumbValue', 10, 2 );
}
Özellik:Kendi WordPress Sitenizin Kendinize Gönderdiği Pingleri Kapatma:
Bazen wordpress site içi linkleme yaptığınızda, bir yazınızdan başka bir yazınıza iç bağlantı kurduğunuzda kendinizden bir pingback (geri bildirim) alırsınız. İşte altta verdiğim kodu functions.php dosyanıza eklediğinizde bu geri bildirim kapanır.
//site için ping kapatma
function no_self_ping( &$links ) {
$home = get_option( 'home' );
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, $home ) )
unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );
Özellik:Yazıdaki İlk Resmi Otomatik Öne Çıkarılmış Görsel Olarak Seçtirme:
WordPress’de ki bir yazıya öne çıkarılmış görsel eklemek için yazı düzenleyiciden “öne çıkan görsel belirle” deyip, resmi ayrıca eklemeniz gerekir.
Tabii bir yazıdaki ilk resmi yazının öne çıkarılmış resmi olarak otomatik olarak kullanmak da mümkün. Bir çok tema bunu otomatik olarak yapar. Bunu yapan eklentiler de var. Mesela Auto Post Thumbnail. Ancak bunun için eklenti kullanmıza gerek yok. Altta verdiğim kodu functions.php dosyanıza eklemeniz yeterli olacaktır.
add_filter
('get_post_metadata', function($value, $object_id, $meta_key, $single) {
if ($meta_key !== '_thumbnail_id' || $value) {
return $value;
}
preg_match('~<img[^>]+wp-image-(\\d+)~', get_post_field('post_content', $object_id), $matches);
if ($matches) {
return $matches[1];
}
return $value;
}, 10, 4);
Özellik:Varsayılan Olarak Gelen WordPress Bileşenlerini Kaldırma:
Genelde çoğumuzun kullanmadığı ( metin bileşeni hariç ) wordpress’in varsayılan olarak getirdiği bir çok bileşen, bileşenler sekmesinde temanızında sağladığı bileşenler de gelince gereksiz bir kalabalığa yol açar.
İşte, siz de benim gibi bu gereksiz kalabalıktan kurtulmak isterseniz aşağıda verdiğim kodu functions.php dosyanıza eklediğinizde wordpress’in varsayılan olarak getirdiği tüm bileşenlerinden kurtulmuş olursunuz.
// unregister all default WP Widgets
function unregister_default_wp_widgets() {
unregister_widget('WP_Widget_Pages');
unregister_widget('WP_Widget_Calendar');
unregister_widget('WP_Widget_Archives');
unregister_widget('WP_Widget_Links');
unregister_widget('WP_Widget_Meta');
unregister_widget('WP_Widget_Search');
unregister_widget('WP_Widget_Categories');
unregister_widget('WP_Widget_Recent_Posts');
unregister_widget('WP_Widget_Recent_Comments');
unregister_widget('WP_Widget_RSS');
unregister_widget('WP_Widget_Tag_Cloud');
}
add_action('widgets_init', 'unregister_default_wp_widgets', 1);
Özellik:Yazı Biçimi Ne Olursa Olsun Tüm Yazı Biçimlerini Kategori Altında Gösterme:
Herhangi bir kategorinize farklı bir yazı biçimi ile yazı eklediğinizde o yazı eklediğiniz kategori altında çıkmayabilir. Alttaki kodu functions.php dosyanıza eklendiğinizde ise her türlü yazı biçimi kategorilerinizin altında yer alacaktır.
function
any_ptype_on_cat($request) {
if ( isset($request['category_name']) )
$request['post_type'] = 'any';
return $request;
}
add_filter('request', 'any_ptype_on_cat');
Özellik:Admin Paneli Footer Kısmında Bulunan WordPress ile Oluşturduğunuz İçin Teşekkürler Kısmını Değiştirme:
Admin panelinizin herhangi bir sekmesine gittiğinizde en alt kısımda “WordPress ile oluşturduğunuz için teşekkürler” şeklinde bir metin göreceksiniz.
İşte bu metni alttaki kodu functions.php dosyanıza ekleyerek ve kod içerisindeki yazıyı istediğiniz gibi düzenleyerek değiştirebilirsiniz.
Bazen müşterileriniz için wordpress sitesi yaptığınızda bu kısma kendi imzanızı bırakmak, markanızın bilinirliğini arttırmak adına yararlı olabilir.
// Admin Footer
function custom_admin_footer() {
echo 'WPMAVI - WordPress Rehberi';
}
add_filter('admin_footer_text', 'custom_admin_footer');
Özellik:Otomatik Çıkış Süresini Uzatma:
Sitenize admin girişi yaptıktan belirli bir süre sonra wordpress otomatik olarak size çıkış yaptırır. Tekrar girmek için ise giriş sayfanıza girip yeniden kullanıcı adı ve şifrenizi girmeniz gerekir.
Alttaki kodu functions.php dosyanıza eklediğinizde ise otomatik çıkış süresi 1 yıllığa uzatılır. Böylece 1 yıl boyunca wordpress’in sizi belirli bir süre sonra otomatik olarak çıkış yaptırması ortadan kalkar.
function
keep_me_logged_in_for_1_year( $expirein ) {
return 31556926; // 1 year in seconds
}
add_filter( 'auth_cookie_expiration', 'keep_me_logged_in_for_1_year' );
Özellik:Yorum Yapanın Yazar Linkini Kaldırma / Yorumlardaki Site Linklerini Kaldırma:
Her ne kadar wordpress sitenize yapılan yorumlardaki gravatar profilleri yorum yapan kişinin ismini o kişinin sitesine nofollow olarak linklese de, yani SEO açısında hiç bir problem yaratmasa da, bu linkler bazen ciddi anlamda rahatsız edici olabiliyor.
Alttaki kodu functions.php dosyanıza eklediğinizde ise sitenizin genelinde yorumlardaki site linklerini kaldırmış olursunuz.
/**
* Yorumlardaki Site Linklerini Kaldırma
*
* @return string $author
*/
function wpse218025_remove_comment_author_link( $return, $author, $comment_ID ) {
return $author;
}
add_filter( 'get_comment_author_link', 'wpse218025_remove_comment_author_link', 10, 3 );
Özellik:Son WordPress Güncellemesi ile Gelen Linklerdeki rel=”noopener” Etiketini Kaldırma:
Öncelikle şunu belirtmeylim ki noferrer ve noopener etiketlerinin SEO’ya hiç bir etkisi yok. Bu etiket güncellemesi ilk geldiğinde insanların SEO açısından çok fazla aklını karıştırdı.
Noreferrer Ne Analam Geliyor: noferrer etiketi siz bir siteye link çıkışı yaptığınızda, link çıkışı yapılan site siz etiketi kullandığınız için trafiğin hangi kaynaktan geldiğini göremez. Yani bu etiketin anlamı referans veren kişinin bilgisi gösterme demektir.
Noopener Ne Anlama Geliyor: Sitenizdeki linklerin yeni sekmede açılma işlemi bereberinde bir güvenlik açığı getiriyor. Bağlantılarınız için target = “_ blank” etiketi kullandığımızda, linki verdiğiniz sayfanın window.opener nesnesi aracılığıyla bir önceki sayfaya kısmi erişim sağlamasına olanak verir.
Bu da phishing saldırısı yapmak isteyenler için bir açıklık anlamına gelir. İşte wordpress son güncellemesi ile bu yüzden tüm yeni sekmede açılan dış linklere rel=”noopener” etiketi getirdi.
Normalde bu kodun olması bu güvenlik açığına sağlıklı bir çözüm. Ancak ortada şöyle bir problem var. Siz eğer sitenizde satış ortaklığı yapıyorsanız ve satış ortaklığı linkleriniz bu etiketleri içeriyorsa, link verdiğiniz site trafiğin nereden geldiğini göremez.
Her ne kadar bu referanslarınıza doğrudan etki etmese de, bazen etki edebildiği durumlar da olmakta. Bunu da geçtim siz istatistiksel olarak hangi linklerinizin size en çok referans satışı sağladığını da göremezsiniz. Dolayısı ile bu etiketler siz istatistiklerinizi göremediğiniz için pazarlama stratejisi kararı almanızı engeller.
Bu durumda eğer satış ortaklığı yapıyorsanız, phishing saldırılarını göze alıp, rel=”noopener” etkiketlerini sitenizden kaldırmak satış ortaklığı gelirlerinizi etkilememek adına güzel bir çözüm olur. Ancak bunun bir risk olduğunu lütfen unutmayın.
Alttaki kodu functions.php dosyanıza eklediğinizde sitenize bundan sonra ekleyeceğiniz dış linklere artık rel=”noopener” etkiketi eklenmez.
Yayımda olan yazılarınızda bulunan dış linklerden bu rel=”noopener” etkikeni kaldırmak için ise, better search and replace gibi eklentiler kullanarak veritabını üzerinden değişlik yapmanız gerekmektedir.
//Bu kodu kullanmanızı çoğu durumda önermem
add_filter('tiny_mce_before_init','tinymce_allow_unsafe_link_target');
function tinymce_allow_unsafe_link_target( $mceInit ) {
$mceInit['allow_unsafe_link_target']=true;
return $mceInit;
}
Özellik:Öne Çıkartılmış Görseli Yazıya Linkleme:
Bazı temalarda yazının gösterime sunulduğu sayfalarda ( ana sayfa, kategori sayfaları gibi ) yazı öne çıkarılmış görsele sahip olsa da, resim yazıya linkli olmuyor.
Eğer sizin siteniz için de bu durum söz konusu ise, alttaki kodu functions.php dosyanıza eklediğinizde yazılarınız için öne çıkarılmış resimler artık yazınıza linkli olacaktır.
function wpmavi_autolink_featured_images( $html, $post_id, $post_image_id ) {
If (! is_singular()) {
$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
return $html;
} else {
return $html;
}
}
add_filter( 'post_thumbnail_html', 'wpmavi_autolink_featured_images', 10, 3 );
Özellik:WordPress Varsayılan Resim Linkini Değiştirme:
Varsayılan olarak, bir wordpress’de bir resim eklediğinizde, resim dosyası veya ek sayfasına otomatik olarak bağlanır / linklenir.
Kullanıcılar resmi tıkladığında, yeni bir sayfaya yönlendirilirler. Bu da ziyaretçinin sayfası terk etmesi anlamına gelir.
WordPress Varsayılan Resim Linki – Boyutu – Hizası Değiştirme başlıklı yazımda wordpress varsayılan resim ayarlarını nasıl değiştireceğinizi detaylı anlattım.
Alttaki kodu functions.php dosyanıza ekleyerek sadece wordpress varsayılan resim linkini de değiştirebilirsiniz;
function wpmavi_imagelink_setup() {
$image_set = get_option( 'image_default_link_type' );
if ($image_set !== 'none') {
update_option('image_default_link_type', 'none');
}
}
add_action('admin_init', 'wpmavi_imagelink_setup', 10);
Bu kod sonrasında yazılarınıza eklediğiniz resimlerin otomatik olarak eklenti gösterme ayaları kısmında bulunan bağlantı seçeneği hiçbiri şeçeneği ile işaretlenmiş bir şekilde gelecektir.
Özellik:WordPress’e Admin Kullanıcıs Ekleme:
WordPress sitenize admin kullanıcısını functions.php dosyanız üzerinden de ekleyebilirsiniz. Tek yapamanız gereken FTP ile siteniz serverına bağlanmak ve altta verdiğim kodu functions.php dosyanıza eklemek.
Tabii kod içerisinde bulunan Usurname – Password ve Mail adresini oluşturmak isteidiğiniz admin kullanıcısı bilgileri ile değiştirmeyi unutmayın.
function wpmavi_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = 'email@domain.com';
if ( !username_exists( $user ) && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpmavi_admin_account');
Özellik:Read More – Devamını Oku Gibi Yazı Özeti Kısmında Bulunan Metni Değiştirme:
Yazı özeti kısmında ziyaretçiyi yazının devamına yönlendirmesi için bulunan metni değiştirmek ister misiniz ? Bunun için tek yapmanız gereken altta verdiğim kodu functions.php sayfanıza eklemeniz.
Tabii bu metni ne ile değiştirmek istiyorsanız, kod içerisinde bulunan Devamını Oku kısmını değiştirmeyi unutmayın.
function modify_read_more_link() {
return '<a class="more-link" href="' . get_permalink() . '">Devamını Oku</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );
Özellik:WordPress Site İçi Arama İşlevini Etkisiz Hale Getirme / WordPress Site İçi Arama Özelliğini Kapatma:
Eğer wordpress site içi arama özelliğini etkisiz hale getirmek istiyorsanız altta paylaştığım kodu functions.php dosyanıza ekleyin.
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
Özellik:WordPress Varsayılan Gravatar Resmini Değiştirme:
WordPress’in kurulumda varsayılan olarak getirdiği gizemli adam avatarını alttaki kodu functions.php dosyanıza ekleyerek kendi siteniz markalı özel avatarlarınızla değiştirebilirsiniz.
Önce sitenize yeni gravatar resminizi Ortam sekmesi üzerinden ekleyin ve eklediğiniz resmin URL adresini alttaki kod içerisinde yer alan URL adresi ile değiştirin.
Ardından Admin Paneli >> Ayarlar >> Tartışma sekmesine gidin ve en altta çıkacak olan yeni avatar resmini seçerek değişiklikleri kaydet deyin. Hepsi bu kadar.
add_filter( 'avatar_defaults', 'wpmavi_yeni_gravatar' );
function wpmavi_yeni_gravatar ($avatar_defaults) {
$myavatar = 'http://ornek.com/wp-content/uploads/2017/01/wwpmavi-yeni-gravatar.png';
$avatar_defaults[$myavatar] = "Default Gravatar";
return $avatar_defaults;
}
Umarım Functions.php Dosyası İçin 25 Son Derece Faydalı Kod başlıklı yazımı yararlı bulmuşsunuzdur. Teşekkürlerinizi, yazımı sosyal mecralarda paylaşarak gösterebilirsiniz. Bu benim için fazlasıyla yeterli olacaktır.
Hayat kurtarıcı içeriğiniz için elinize sağlık
Selamlar,
WordPress’te child theme mantığını eklentiler için de kullanabilir miyiz ? Bir eklentide çok değişiklik yaptım. Güncelleme geldiğinde kaybolmasını istemiyorum. Buna karşı önlem almak istiyorum. Yardımcı olursanız sevinirim.
Güzel bir çalışma olmuş code snippets eklentisinü öğrenmek güzel oldu.
Teşekkürler.
Bol şanslar
Bazı temalarda admin bar kapatma olmadığı için siteyi önizlerken admin barı kapatma kodu da oldukça faydalı.
function hide_admin_bar(){ return false; }
add_filter( ‘show_admin_bar’, ‘hide_admin_bar’ );
Merhaba, wp-content/uploads klasörüne erişimin kapatılmasını istiyorum, fakat yazılardaki ve sayfalardaki görseller google’da indexlensin görünsün istiyorum. bunu nasıl yapabilirim? wp-content/uploads dışında kapatmamda fayda olan klasörlerin erişimlerini nasıl kapatabilirim yardımcı olur musunuz?
Merhaba Burak bey.
Yazınızı okudum ve bu bilgiler çok tşk ederim. Kendi avatarımızı belirleme bölümü ile ilgili bir sorum olacaktı. Mesela sizin burada https://wpmavi.com/wp-content/uploads/2017/05/wpmavi-avatar.jpg şeklinde çalışıyor bizse o kodlarla eklediğimiz zaman yine http://0.gravatar.com/avatar/37afaf5d94423418383a05d388653161?s=50&d=http%3A%2F%2Fwww.siteadi.net%2Fimages%2Favatar.png&r=g gravatar sitesinden alıyor. Direk sizdeki gibi gravatar sitesine gitmeden avatarımızı kendi sitemiz üzerinden gösterebilirmiyiz acaba? Şimdiden cevabınız için tşk ederim.
wp users avatar eklentisini kullanarak bunu yapabilrisiniz hocam.
sen süper ötesi bir şeysin ellerine sağlık.
Burak hocam tekrar merhaba.
Dediğin gibi WordPress jQuery Dosyalarını Google CDN Üzerinden Çekmek için kodları ekledim. Ama gtmetrix şöyle bir uyarı verdi.
https://image.prntscr.com/image/KZ5oKi36T-O6xD16OiiQUQ.png
resimde de gördüğün gibi google jquery adresini iki defa görüyor. Sen üstteki kodu eklemiştin. O yüzden ben de google nin güncel olan yani alttaki ver=1.11.3 diye biten url adresini ekledim. Sorun çözüldü.
Aynı sorunu yaşayanlar için paylaşmak istedim.
;)
Eline sağlık Burak.
Daha önce yazmış olduğun siteye özel eklenti oluşturma işlemini yaparak buradan işime yarayanları tek tek aldım. Böylelikle function php dosyasına da karışmamış olduk. Tertemiz oldu yani :)
Aklıma gelmişken bir şey soracağım. Yorum yaparken 1+1=? şeklinde olan kısmı nasıl yaptın? Akismet ya da google recaptcha aynı işi görüyor ama fazladan 1 eklenti bile kullanmak istemiyorum. Sanırım bu daha stabil bir şey.
Yazımın işinizi görmesine sevindim hocam. Benim doğrulama kısmım temada olan bir özellikti. Ancak biraz yabancı sitelerde araştırın yapımı kolay bir şey bulabilirsiniz.
Ben yazı içerisindeki ilk görseli otomatik olarak öne çıkaran kodu yaptım işe yaradaı ancak bu seferde aynı resimden iki tane oldu bunu nasıl düzeltebilirim?
Çok faydalı ve kullanışlı bilgiler paylaşmaktasınız, tebrik eder ve devamını dilerim.
Faydalı bilgi için teşekkürler. Noopener, nofollow ile birlikte kullanılabiliyor mu? rel=”nofollow noopener” gibi…
Meraba burak Bey, 2012 yıLından itibaren kendimi hep arkaplanlarda deniyerek bozarak Seslichat panelciliginde kendimi geliştirdim. suan bircok paneli kendim kodlayıp satısa sunuyorum. aynı şekilde wordpres temaları’da yapabilirim. fakat benm ürettigim portallar seo acısından daha güçlü Seo açısından %94′ e kadar bir web sitenin seo puanını yükseltebiliyorum. bunun bir zararı olacagını düşünüyormusunuz ?
Paylaşımınız için çok teşekkürler Burak Bey :)
Faydalı bir makale olmuş. Teşekkürler. İşime yarayan kısımları alıp uyguladım. Özellikle Jquery iyi oldu. Ve auth_cookie_expiration kısmını da ekledim.
Teşekkürler paylaşım için.
WordPress jQuery Dosyalarını Google CDN Üzerinden Çekme
nasıl oluyor? Biz o kodu eklediğimizde sıkıntı çıkmaz değilmi? Yani google cdn hesap lazım mı?
Normalde bu jquery dosyası wordpress dosyaları içinde ve wordpress’de sizin kendi sitenizin kendi server’ınızda yüklü olduğu için de jquery dosyası sizin server’ınızdan çekiliyor. Aynı kod dosyası google serverlarında da yüklü. Verdiğim kodla bu dosyayı google cdn serverları üzerinden çekmiş oluyorsunuz. Tek yapmanız gereken kodu sitenize eklemek. Kodun içinde çekeceği URL var zaten. Ben jquery’nin son sürümlerinden birini ekledim koda. Büyük ihtimalle sitenizde sorun çıkmayacaktır. Çıkarsa da, kodu silersiniz.
Eline sağlık, devamı olacak mı?
merhaba,
yazınız harika olmuş. birkaçını daha önce eklemiştim. sadece makaleyi güncellediğimizde güncelleme bilgisini üstte nasıl veririz onunla ilgili bir kod bulamadım.
Aradığınız kodu mail adresinize gönderdim hocam.
Burak Hocam yine dokturmuşdunuz…Bılgınıze kalemınıze saglık….uc farklı kodunuzu sitemde kullandim…
Süper hocam ! Faydasını görmenize sevindim.
Sitelerimden birine, telefonumun kendi tarayıcısı ile girdiğim zaman şu şekilde hata alıyorum:
template error the template file must be given for the template cloud not be opened
Aynı telefondan chrome ile girdiğimde; ya da pc üzerinde herhangi bir sıkıntı bulunmuyor.
Güncellemeleri yaptım, tema güncellemesini dahi yaptım ama sorun çözülmedi; ve bu problem bir anda, herhangi bir şey yapmadan ortaya çıktı.
Sorunun çözümü hakkında öneriniz nedir acaba
Burak Hocam,
Elinize sağlık ilk yorum benden olsun:)
WordPress Varsayılan Gravatar Resmini Değiştirme kodunu kullandım, url adresini doğru vermeme rağmen resimler kırık-bozuk görünümde çıkıyor. 70*70 ve daha fazlası iki farklı ebatlarda jpeg ve png uzantılı resimler kullandım ama değişmedi. Acaba gravatar en-boy ölçü oranlarında vs. mi bir hata yapıyorum (Edit Snippet eklentisi üzerinden). http://prntscr.com/fr457r
Kodu şimdi tekrar kontrol ettim. Kodda bi problem yok hocam gayet sağlıklı çalışıyor. Keza sizin sitenizde de gravatar profiliniz değişmiş olarak görünüyor. https://prnt.sc/fr489k CTRL + F5 yapın sayfanızda düzeldiğini göreceksinizdir.
Faydalı bir yazı olmuş hocam. Kendi siteme de ekledim bazılarını. Teşekkürler.
Ben de o düşünce ile yazdım hocam. Yorumunuz için teşekkür ederim.