Ekibimizin bir parçası olmak ister misin? Müşteri Girişi

Functions.php için faydalı kodlar

7 Mart 2023
PAYLAŞ
Functions.php için faydalı kodlar

Öncelikle functions.php dosyasını tanıyalım. Bu dosya WordPress tema klasörleri ile birlikte sunucumuza yüklenen ayar dosyasıdır. Dosyanın asıl amacı tema geliştiricilerini tanıtmak, tema işlevlerini ve özelliklerini almasını sağlayan dosyadır. 

WordPress eklentilerinin de düzenleme yaptığı bu dosyada wordpress’e komut vermiş olursunuz. Eklediğiniz bu ufak kodlar ile eklenti sunucu dosya yükünden kurtularak direk olarak çalışmasını sağlayabilirsiniz.

Functions.php Dosyasına Kod nasıl eklenir ?

Bilmeyen arkadaşlarımız daha önce yazmış olduğumuz Functions.php Dosyasına Kod Eklemek adlı makalemizi inceleyebilir.

1.Yeniden Boyutlandırılan görselleri net hale getirmek

Bu kod parçacığı web sitemizde yeniden boyutlandırma yapılan tüm resimlerin kaybettikleri netlik oranlarını geri getirmeye yaramaktadır.

Özellikle resim sıkıştırma eklentileri kullanan arkadaşlarımız görüntülerinde bulanıklaşma yaşamaktadır. Bu kod parçacığını functions.php dosyasına yapıştırarak görüntüleri netleştirebilir.

// codlio.com resimleri netleştir
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 = ;
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);

2. Makalelerin Özet Uzunluğunu Değiştirmek

Daha fazla oku yada Read More butonundan önce wordpress’in otomatik olarak yazdığı kısa özet çok uzun gözüküyor ve sitenin görüntüsünü bozuyor ise aşağıdaki kod yardımıyla bu sorunu aşabilirsiniz.

Kod kelime olarak sayım yapmaktadır. Kelime haznesini ne kadar tutmak isterseniz “50” olan yeri değiştiriniz.

<span class="kwd">// codlio.com Özet uzunluğu değiştir
function</span><span class="pln"> new_excerpt_length</span><span class="pun">(</span><span class="pln">$length</span><span class="pun">)</span> <span class="pun">{</span> 
<span class="kwd">return</span> <span class="lit">100</span><span class="pun">;</span>
<span class="pun">}</span><span class="pln">
add_filter</span><span class="pun">(</span><span class="str">'excerpt_length'</span><span class="pun">,</span> <span class="str">'new_excerpt_length'</span><span class="pun">);</span>

3.Wordpress Versiyon Bilgisini Kaldırmak

WordPress sürümünüzün açık olması saldırı yapacak kişilere açık davetiye çıkarmaktır. Sürümü bilen hacker sürümdeki açıklar hakkında bilgi toplayabilir ve web sitesini kolayca alaşağı edebilir. Bu sorunu ortadan kaldırmak için aşağıdaki kodu kullanabilirsiniz.


// codlio.com Versiyon Gizle
function complete_version_removal() {
return '';
}
add_filter('the_generator', 'complete_version_removal');
// codlio.com Versiyon Gizle
function complete_version_removal() {
return '';
}
add_filter('the_generator', 'complete_version_removal');

4.Wordpress Güncellemelerini Sadece Admin’in Görmesini Sağlamak

Özellikle blog sistemi kullanarak yazar barındıran veya wordpress sistemleri üzerinden web tasarım yapan arkadaşlar için oldukça yararlı bir kod parçasıdır. Bu kod parçası sayesinde admin panelinde sitenin üzerinde gözüken güncelleme bildirimlerini Admin dışında hiçbir kullanıcı göremeyecektir.


<span class="com">// codlio.com Güncellemeleri Kapat</span>
<span class="kwd">global</span><span class="pln"> $user_login</span><span class="pun">;</span><span class="pln">
get_currentuserinfo</span><span class="pun">();</span>
<span class="kwd">if</span> <span class="pun">(!</span><span class="pln">current_user_can</span><span class="pun">(</span><span class="str">'update_plugins'</span><span class="pun">))</span> <span class="pun">{</span> 
<span class="com">// Kullanıcı yetkisi kontrolü </span><span class="pln">
add_action</span><span class="pun">(</span> <span class="str">'init'</span><span class="pun">,</span><span class="pln"> create_function</span><span class="pun">(</span> <span class="str">'$a'</span><span class="pun">,</span> <span class="str">"remove_action( 'init', 'wp_version_check' );"</span> <span class="pun">),</span> <span class="lit">2</span> <span class="pun">);</span><span class="pln">
add_filter</span><span class="pun">(</span> <span class="str">'pre_option_update_core'</span><span class="pun">,</span><span class="pln"> create_function</span><span class="pun">(</span> <span class="str">'$a'</span><span class="pun">,</span> <span class="str">"return null;"</span> <span class="pun">)</span> <span class="pun">);</span>
<span class="pun">}</span>
<span class="com">// codlio.com Güncellemeleri Kapat</span>
<span class="kwd">global</span><span class="pln"> $user_login</span><span class="pun">;</span><span class="pln">
get_currentuserinfo</span><span class="pun">();</span>
<span class="kwd">if</span> <span class="pun">(!</span><span class="pln">current_user_can</span><span class="pun">(</span><span class="str">'update_plugins'</span><span class="pun">))</span> <span class="pun">{</span> 
<span class="com">// Kullanıcı yetkisi kontrolü </span><span class="pln">
add_action</span><span class="pun">(</span> <span class="str">'init'</span><span class="pun">,</span><span class="pln"> create_function</span><span class="pun">(</span> <span class="str">'$a'</span><span class="pun">,</span> <span class="str">"remove_action( 'init', 'wp_version_check' );"</span> <span class="pun">),</span> <span class="lit">2</span> <span class="pun">);</span><span class="pln">
add_filter</span><span class="pun">(</span> <span class="str">'pre_option_update_core'</span><span class="pun">,</span><span class="pln"> create_function</span><span class="pun">(</span> <span class="str">'$a'</span><span class="pun">,</span> <span class="str">"return null;"</span> <span class="pun">)</span> <span class="pun">);</span>
<span class="pun">}</span>

5. WordPress Teşekkür Yazısını Kaldırmak

WordPress admin panelinde göz yoran şeyleri sevmiyorsanız. Bunlardan biriside canınızı sıkacak olan “WordPress ile Oluşturduğunuz İçin Teşekkürler” yazısınıdır. Bu yazıyı kaldırmak için aşağıdaki kod parçasını kullanabilirsiniz.

Tamamen kaldırmak için

echo 'codlio.com Web Master Destek Platformu';

 kısmını boş bırakmalısınız. Değiştirmek için kendi bilgilerinizi yazabilirsiniz.


// codlio.com Teşekkürler yazısını kaldırmak
function custom_admin_footer() {
echo 'codlio.com Web Master Destek Platformu';
} 
add_filter('admin_footer_text', 'custom_admin_footer');
 codlio.com Teşekkürler yazısını kaldırmak
function custom_admin_footer() {
echo 'codlio.com Web Master Destek Platformu';
} 
add_filter('admin_footer_text', 'custom_admin_footer');

6.Admin Paneli Giriş Logusunu Değiştirme

Admin Panele giriş yaparken göze batan WordPress logosunu kaldırarak kendi logonuzu koyabilirsiniz. Genellikle yazar kullanan ve wordpress site satışı yapan kişiler bu kodu tercih etmektedir.


// codlio.com wp-login.php Logo Değiştirme
function custom_loginlogo() {
echo '&lt;style type="text/css"&gt; 
body.login div#login h1 a {
background-image: url(LOGO URLSİ BURAYA GELECEK);
}
.login h1 a {
background-size: 258px;
width: 258px;
height:57px;
&lt;/style&gt;';
}
add_action('login_head', 'custom_loginlogo');
 codlio.com wp-login.php Logo Değiştirme
function custom_loginlogo() {
echo '&lt;style type="text/css"&gt; 
body.login div#login h1 a {
background-image: url(LOGO URLSİ BURAYA GELECEK);
}
.login h1 a {
background-size: 258px;
width: 258px;
height:57px;
&lt;/style&gt;';
}
add_action('login_head', 'custom_loginlogo');

7. Önizleme sayısına sınır koyma

Makale yazarken çoğumuz yazı nasıl olmuş diye önizleme butonunu kullanmışızdır. Geriye dönük tüm detayları wordpress veritabanınıza kaydetmektedir. Bu gereksiz yükü ortadan kaldırmak için Veritabanına kayıt altına alınan önizleme sayısını sınırlayacağız.

//codlio.com Önizleme sayısını sınır koymak
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 5);

8. WordPress’in kendisine attığı pingleri kapatmak

Site içi linklemeyi seo açısından hepimiz yapıyoruzdur. Bu yöntemin sebep olduğu geri pinglemeyi ortadan kaldırmak için aşağıdaki kodu kullanabilirsiniz.


<span class="com">//codlio.com Site içi linkleme ping engeli</span>
<span class="kwd">function</span><span class="pln"> no_self_ping</span><span class="pun">(</span> <span class="pun">&amp;</span><span class="pln">$links </span><span class="pun">)</span> <span class="pun">{</span><span class="pln">
$home </span><span class="pun">=</span><span class="pln"> get_option</span><span class="pun">(</span> <span class="str">'home'</span> <span class="pun">);</span>
<span class="kwd">foreach</span> <span class="pun">(</span><span class="pln"> $links </span><span class="kwd">as</span><span class="pln"> $l </span><span class="pun">=&gt;</span><span class="pln"> $link </span><span class="pun">)</span>
<span class="kwd">if</span> <span class="pun">(</span> <span class="lit">0</span> <span class="pun">===</span><span class="pln"> strpos</span><span class="pun">(</span><span class="pln"> $link</span><span class="pun">,</span><span class="pln"> $home </span><span class="pun">)</span> <span class="pun">)</span><span class="pln">
unset</span><span class="pun">(</span><span class="pln">$links</span><span class="pun">[</span><span class="pln">$l</span><span class="pun">]);</span>
<span class="pun">}</span><span class="pln">
add_action</span><span class="pun">(</span> <span class="str">'pre_ping'</span><span class="pun">,</span> <span class="str">'no_self_ping'</span> <span class="pun">);</span>

<span class="com">//codlio.com Site içi linkleme ping engeli</span>
<span class="kwd">function</span><span class="pln"> no_self_ping</span><span class="pun">(</span> <span class="pun">&amp;</span><span class="pln">$links </span><span class="pun">)</span> <span class="pun">{</span><span class="pln">
$home </span><span class="pun">=</span><span class="pln"> get_option</span><span class="pun">(</span> <span class="str">'home'</span> <span class="pun">);</span>
<span class="kwd">foreach</span> <span class="pun">(</span><span class="pln"> $links </span><span class="kwd">as</span><span class="pln"> $l </span><span class="pun">=&gt;</span><span class="pln"> $link </span><span class="pun">)</span>
<span class="kwd">if</span> <span class="pun">(</span> <span class="lit"></span> <span class="pun">===</span><span class="pln"> strpos</span><span class="pun">(</span><span class="pln"> $link</span><span class="pun">,</span><span class="pln"> $home </span><span class="pun">)</span> <span class="pun">)</span><span class="pln">
unset</span><span class="pun">(</span><span class="pln">$links</span><span class="pun">[</span><span class="pln">$l</span><span class="pun">]);</span>
<span class="pun">}</span><span class="pln">
add_action</span><span class="pun">(</span> <span class="str">'pre_ping'</span><span class="pun">,</span> <span class="str">'no_self_ping'</span> <span class="pun">);</span>

9.Kullanmadığınız WordPress Bileşenlerini Kaldırmak

Çoğu webmaster arkadaşımızın kullanmadığı wordpress standartlarında gelen bileşenler mevcuttur. Bu bileşenler yüzünden Görünüm>Bileşenler modülünden Sidebarlara özellik eklemeye çalışırken gözlerimiz yoruluyor. WordPress’in orjinalinde gelen bu gereksiz widgetleri ortadan kaldırmak için aşağıdaki kodu kullanabilirsiniz.

<span class="com">// codlio.com Standart bileşenleri kaldırmak</span>
<span class="kwd">function</span><span class="pln"> unregister_default_wp_widgets</span><span class="pun">()</span> <span class="pun">{</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Pages'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Calendar'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Archives'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Links'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Meta'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Search'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Categories'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Recent_Posts'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Recent_Comments'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_RSS'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Tag_Cloud'</span><span class="pun">);</span>
<span class="pun">}</span><span class="pln">
add_action</span><span class="pun">(</span><span class="str">'widgets_init'</span><span class="pun">,</span> <span class="str">'unregister_default_wp_widgets'</span><span class="pun">,</span> <span class="lit">1</span><span class="pun">);</span>
<span class="com">// codlio.com Standart bileşenleri kaldırmak</span>
<span class="kwd">function</span><span class="pln"> unregister_default_wp_widgets</span><span class="pun">()</span> <span class="pun">{</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Pages'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Calendar'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Archives'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Links'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Meta'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Search'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Categories'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Recent_Posts'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Recent_Comments'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_RSS'</span><span class="pun">);</span><span class="pln">
unregister_widget</span><span class="pun">(</span><span class="str">'WP_Widget_Tag_Cloud'</span><span class="pun">);</span>
<span class="pun">}</span><span class="pln">
add_action</span><span class="pun">(</span><span class="str">'widgets_init'</span><span class="pun">,</span> <span class="str">'unregister_default_wp_widgets'</span><span class="pun">,</span> <span

10. Admin hesabından otomatik çıkış süresini artırmak

Admin panelindeyken wordpress bir süre sonra sizi otomatik olarak çıkış yaptırır. Tekrar şifre girmenizi ister. Bu süreyi 1 yıllığına uzatarak size kolaylık sağlayacak kod parçasını functions.php dosyasına ekleyebilirsiniz.


<span class="kwd">function</span><span class="pln"> keep_me_logged_in_for_1_year</span><span class="pun">(</span><span class="pln"> $expirein </span><span class="pun">)</span> <span class="pun">{</span>
<span class="kwd">return</span> <span class="lit">31556926</span><span class="pun">;</span> <span class="com">// 1 year in seconds</span>
<span class="pun">}</span><span class="pln">
add_filter</span><span class="pun">(</span> <span class="str">'auth_cookie_expiration'</span><span class="pun">,</span> <span class="str">'keep_me_logged_in_for_1_year'</span> <span class="pun">);</span>
<span class="kwd">function</span><span class="pln"> keep_me_logged_in_for_1_year</span><span class="pun">(</span><span class="pln"> $expirein </span><span class="pun">)</span> <span class="pun">{</span>
<span class="kwd">return</span> <span class="lit">31556926</span><span class="pun">;</span> <span class="com">// 1 year in seconds</span>
<span class="pun">}</span><span class="pln">
add_filter</span><span class="pun">(</span> <span class="str">'auth_cookie_expiration'</span><span class="pun">,</span> <span class="str">'keep_me_logged_in_for_1_year'</span> <span class="pun">);</span>

11. Yorumlarda yazar site linkini kaldırmak

Yorum atanların bazıları sırf backlink almak için yorum atmaktadır. Nofollow linkler size zarar vermese de dofollow linkler seo açısından size zarar verebilir. Bu tür olaylara mahal vermemek için yorum atanların kullanıcı adlarının arkaplanında yer alan linkleri aşağıdaki kod yardımıyla kaldırabilirsiniz.


// codlio.com Yorumlardaki Linkleri 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 );

// codlio.com Yorumlardaki Linkleri 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 );

12.Yorumlarda web site doldurmayı kaldırmak

Yorum yapan kullanıcıların web sitesi ekleme zorunluluğunu ortadan kaldırmak için aşağıdaki kodu kullanabilirsiniz.

function remove_comment_fields($fields) {
unset($fields['url']);
return $fields;
}
add_filter('comment_form_default_fields','remove_comment_fields');

13. Read More yazısını değiştirmek

Blog yazılarında yazının özetinden sonra gelen Read More butonunu değiştirerek Devamını Oku yapmayı çok zor bir işlem olarak görseniz de aslında çok basit bir işlemdir. Aşağıdaki kod yardımıyla bu işlemi yapabilirsiniz.

function modify_read_more_link() {
return '&lt;a class="more-link" href="' . get_permalink() . '"&gt;Devamını Oku&lt;/a&gt;';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );

14. Site içi aramayı kapatmak

Ziyaretçilerin site içinde arama yapmasını engelleyerek her sayfayı tek tek dolaşmasını istiyorsanız aşağıdaki kodu kullanmalısınız. Bazı durumlarda bu olay ziyaretçileri canından bezdirip siteden uzaklaşmasına sebep olabilir.


function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query-&gt;is_search = false;
$query-&gt;query_vars[s] = false;
$query-&gt;query[s] = false;
// to error
if ( $error == true )
$query-&gt;is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

15. Standart Gravatar Resmini Değiştirme

Gravatar kullanan arkadaşların gravatar’ın uyuz olduğumuz resminden sıkılmışlığı vardır. Bunu değiştirmek aslında çok kolay aşağıdaki kod parçasına avatar linkinin yolunu söyleyerek istediğiniz avatarı kullanabilirsiniz.

Not: Kodu ekledikten sonra Admin Panel>Ayarlar>Tartışma sekmesinden yeni avatarı seçip kaydet demeyi unutmayınız.

add_filter( 'avatar_defaults', 'codlio_yeni_gravatar' );
function codlio_yeni_gravatar ($avatar_defaults) {
$myavatar = 'AVATARIN LİNKİ BURAYA GELECEK';
$avatar_defaults[$myavatar] = "Default Gravatar";
return $avatar_defaults;
}

16.Bakım modu

Web sitesini bakıma soktuğunuzda eklenti kullanmanıza gerek yoktur. Functions.php dosyasına aşağıdaki kodu ekleyerek web sitenizi bakıma soktuğunuzu ziyaretçilerinize duyurabilirsiniz.

/ codlio.com Bakım modu açık
// Admin girişi yaptığınızda size bakım modu gözükmez ama kullanıcılara gözükür.
function wp_maintenance_mode(){
if(!current_user_can('edit_themes') || !is_user_logged_in()){
wp_die('Bakım yapıyoruz. Yaklaşık olarak 1 gün sonra hizmetinizdeyiz.', 'Bakım yapıyoruz. Yaklaşık olarak 1 gün sonra hizmetinizdeyiz.', array('response' => '503'));
}
}
add_action('get_header', 'wp_maintenance_mode');

İlginizi Çekebilir
YouTube Özel URL Oluşturma İşlemi Nasıl Yapılır? Kılavuz
Blog 10 Eylül 2023

YouTube kanalınıza özel URL nasıl oluşturulur? Daha profesyonel ve hatırlanabilir bir görünüm için adım adım rehber. ...

Kapsamlı Sosyal Medya Taraması Nasıl Yapılır? Adım Adım Rehber
Blog 10 Eylül 2023

Sosyal medya taraması nasıl yapılır? Marka görünürlüğünüzü artırmak ve rakip analizi için etkili adımlar. Detaylı rehbe...

A/B Testi Nedir & A/B Testing Nasıl Yapılır? Kapsamlı Rehber
Blog 10 Eylül 2023

A/B testi nedir ve nasıl yapılır? İki farklı versiyon arasında karşılaştırmalı testlerle daha etkili sonuçlar elde edin...

Facebook Dinamik Ürün Reklamlarında Bilmeniz Gerekenler: Etkili Rehber
Blog 9 Eylül 2023

Facebook dinamik ürün reklamlarıyla ilgili bilmeniz gerekenler. Ürün kampanyalarınızı optimize etmek için etkili ipuçla...

aok
KAPAT X
Ekibimizin bir parçası olmak ister misin? Müşteri Girişi