functions.php olarak bilinen WordPress işlevler dosyası, her WordPress temasıyla birlikte gelen güçlü bir araçtır. Bir eklenti gibi davranarak sitenize kolaylıkla özel kod eklemenizi sağlar.
Kısa bir kod parçası kullanılabildiğinde sitelerimizde özel kod kullanıyoruz. WordPress’teki bu çok yönlülük ve esneklik, birkaç eklentinin işlevselliğini yönetimi kolay bir şekilde birleştirmemize olanak tanıyor.
Bu makalede, WordPress işlevler dosyanızı kullanmaya yönelik pratik ve kullanışlı püf noktalarından bazılarını paylaşarak WordPress sitenizden daha fazla yararlanmanıza yardımcı olacağız.
WordPress’te İşlevler Dosyası Nedir?
functions.php dosyası, tüm ücretsiz ve premium WordPress temalarıyla birlikte gelen bir WordPress tema dosyasıdır.
Bir eklenti gibi davranır ve tema geliştiricilerin tema özelliklerini tanımlamasına olanak tanır. Kullanıcılar ayrıca WordPress’e özel kod parçacıklarını eklemek için de kullanabilirler.
Ancak, özel kodu işlevler dosyasına kaydetmek iyi bir uygulama değildir.
Temanızı güncellerseniz functions.php dosyasının üzerine yazılır ve özel kod parçacıklarınızı kaybedersiniz. Bir kod parçacığını silmeden kapatamazsınız.
Bunun yerine, herkesin herhangi bir tema, eklenti veya çekirdek WordPress dosyasını düzenlemeden WordPress web sitenize kod parçacıkları eklemenizi sağlayan ücretsiz bir eklenti olan WPCode‘u kullanmasını öneririz.
WPCode’u neden öneriyoruz?
- Herhangi bir çekirdek dosyayı düzenlemeden özel kod parçacıklarını kolayca kaydedin.
- İhtiyaç duyduğunuz yerlere otomatik olarak kod parçacıkları ekleyin
- Her kod parçacığı ayrı ayrı kaydedilir ve ayrı ayrı kapatılabilir.
- Yerleşik bir arıza emniyet mekanizması, sitenizde bir hataya neden olursa bir kod parçacığını devre dışı bırakır.
Bonus olarak, WPCode eklentisi önceden yapılandırılmış kod parçacıklarından oluşan kapsamlı bir kütüphaneye sahiptir (bu listedeki birçok kod parçacığı dahil). Bu kod parçacıklarını birkaç tıklamayla dağıtabilirsiniz.
Bunu söyledikten sonra, işte bu makalede ele alacağımız öğelerin bir listesi. İlginizi çeken bir tanesine atlayabilir veya sadece takip edebilirsiniz:
- How to Add These Code Snippets to Your Website
- Remove WordPress Version Number
- Add a Custom Dashboard Logo
- Change the Footer in WordPress Admin Panel
- Add Custom Dashboard Widgets in WordPress
- Change the Default Gravatar in WordPress
- Dynamic Copyright Date in WordPress Footer
- Randomly Change the Background Color in WordPress
- Update WordPress URLs
- Add Additional Image Sizes in WordPress
- Add New Navigation Menus to Your Theme
- Add Author Profile Fields
- Adding Widget-Ready Areas or Sidebars in WordPress Themes
- Manipulate the RSS Feed Footer
- Add Featured Images to RSS Feeds
- Hide Login Errors in WordPress
- Disable Login by Email in WordPress
- Disable Search Feature in WordPress
- Delay Posts in RSS Feed
- Change Read More Text for Excerpts in WordPress
- Disable RSS Feeds in WordPress
- Change Excerpt Length in WordPress
- Add an Admin User in WordPress
- Disable Language Switcher on Login Page
- Show the Total Number of Registered Users in WordPress
- Exclude Specific Categories From RSS Feed
- Disable URL Links in WordPress Comments
- Add Odd and Even CSS Classes to WordPress Posts
- Add Additional File Types to Be Uploaded in WordPress
- Change Sender Name in WordPress Emails
- Add an Author Info Box in WordPress Posts
- Disable XML-RPC in WordPress
- Automatically Link Featured Images to Posts
- Disable Block Editor in WordPress
- Disable Block Widgets in WordPress
- Display the Last Updated Date in WordPress
- Use Lowercase Filenames for Uploads
- Disable WordPress Admin Bar on Frontend
- Change Howdy Admin Text in Admin Area
- Disable Code Editing in Block Editor
- Disable Plugin / Theme File Editor
- Disable New User Notification Emails
- Disable Automatic Update Email Notifications
- Add a Link to Easily Duplicate a Post
- Remove Welcome Panel From the WordPress Admin Dashboard
- Add a Featured Image Column for Posts in WordPress Admin
- Block WordPress Admin Area for Everyone Except Administrators
Bu Kod Parçacıklarını Web Sitenize Nasıl Ekleyebilirsiniz?
Başlamadan önce, bu makaledeki kod parçacıklarını WordPress işlevler dosyanıza nasıl ekleyeceğinize bakalım.
1. WPCode Kullanarak İşlevler Dosyasına Özel Kod Ekleme (Önerilen)
Öncelikle WPCode eklentisini yüklemeniz ve etkinleştirmeniz gerekir. Daha fazla ayrıntı için, bir WordPress eklentisinin nasıl kurulacağına ilişkin adım adım kılavuzumuza bakın.
Etkinleştirmenin ardından Code Snippets ” + Snippet Ekle sayfasına gidin. WPCode’un kod kitaplığında birçok yararlı özel kod parçacığının zaten eklenmiş olduğunu göreceksiniz.
Kod parçacığınız kütüphanedeki parçacıklarla aynı şeyi yapıyorsa, oraya zaten eklenmiş olanı deneyebilirsiniz.
Alternatif olarak, özel kod parçacığınızı eklemeye devam etmek için ‘boş snippet’ bağlantısını tıklayın.
Bir sonraki ekranda, özel kodunuz için bir başlık girin. Bu, bu kod parçacığının ne yaptığını tanımlamanıza yardımcı olacak herhangi bir şey olabilir.
Ardından, ‘Kod Türü’nü seçmeniz gerekir. Eğer functions.php dosyasında çalışan bir kod ekliyorsanız, ‘PHP Snippet’ seçeneğini seçmelisiniz.
Bunun altında, özel kodunuzu kopyalayıp ‘Kod Önizleme’ kutusuna yapıştırmanız gerekir.
Son olarak, snippet’inizi ‘Aktif’ olarak ayarlamanız ve ‘Snippet’i Kaydet’ düğmesine tıklamanız gerekir.
Kaydettiğiniz snippet artık functions.php dosyasına eklemiş olsaydınız çalışacağı gibi çalışacaktır.
Gerektiğinde daha fazla snippet eklemek için işlemi tekrarlayabilirsiniz. Ayrıca bir snippet’i silmeden de devre dışı bırakabilirsiniz.
2. Özel Kodu Doğrudan İşlevler Dosyasına Ekleme
WPCode yöntemi, temanın işlevler dosyasına kod eklemekten her zaman daha iyidir.
Ancak, bazı kullanıcılar müşterinin özel WordPress teması için kod yazıyor olabilir veya sadece functions.php dosyasına kod eklemeyi tercih edebilir.
Bu durumda, WordPress temanızın functions.php dosyasına nasıl kod ekleyebileceğiniz aşağıda açıklanmıştır.
İlk olarak, bir FTP istemcisi kullanarak WordPress web sitenize bağlanın. Bağlandıktan sonra /wp-content/themes/your-wordpress-theme/ klasörüne gidin.
Orada functions.php dosyasını bulacaksınız. Sadece sağ tıklayın ve düzenlemek için seçin veya düzenlemek için dosyayı bilgisayarınıza indirin.
Notepad veya TextEdit gibi herhangi bir düz metin düzenleyicisi kullanarak düzenleyebilirsiniz.
Ardından, functions.php dosyasının en altına gidin ve kod parçacığınızı buraya yapıştırın. Değişikliklerinizi kaydedebilir ve güncellenmiş functions.php dosyasını tema klasörünüze yükleyebilirsiniz.
Artık özel kodunuzu çalışırken görmek için WordPress web sitenizi ziyaret edebilirsiniz.
Şimdi WordPress fonksiyonlar dosyası için 46 farklı faydalı numaraya göz atalım.
1. WordPress Sürüm Numarasını Kaldırma
Her zaman WordPress’in en son sürümünü kullanmalısınız. Ancak, WordPress sürüm numarasını sitenizden kaldırmak isteyebilirsiniz.
Bu kod parçacığını fonksiyon dosyanıza veya yeni bir WPCode parçacığı olarak eklemeniz yeterlidir:
function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');
Ayrıntılı talimatlar için WordPress sürüm numarasını kaldırmanın doğru yolu hakkındaki kılavuzumuza bakın.
2. Özel Gösterge Tablosu Logosu Ekleme
WordPress yönetici alanınızı beyaz etiketlemek mi istiyorsunuz? İlk adım, özel bir gösterge paneli logosu eklemektir.
İlk olarak, özel logonuzu temanızın images klasörüne custom-logo.png olarak yüklemeniz gerekir. Özel logonuz 16×16 piksel boyutunda 1:1 oranında (kare görüntü) olmalıdır.
Bundan sonra, bu kodu temanızın işlevler dosyasına veya yeni bir WPCode snippet’i olarak ekleyebilirsiniz:
function wpb_custom_logo() {
echo '
<style type="text/css">
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;
background-position: 0 0;
color:rgba(0, 0, 0, 0);
}
#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
background-position: 0 0;
}
</style>
';
}
//hook into the administrative header output
add_action('wp_before_admin_bar_render', 'wpb_custom_logo');
Daha fazla ayrıntı için WordPress’te özel gösterge paneli logosu ekleme kılavuzumuza bakın.
3. WordPress Yönetici Panelinde Altbilgiyi Değiştirme
WordPress yönetici alanındaki altbilgi ‘WordPress ile oluşturduğunuz için teşekkür ederiz’ mesajını gösterir. Bu kodu ekleyerek istediğiniz şekilde değiştirebilirsiniz:
function remove_footer_admin () {
echo 'Fueled by <a href="http://www.wordpress.org" target="_blank">WordPress</a> | WordPress Tutorials: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';
}
add_filter('admin_footer_text', 'remove_footer_admin');
Eklemek istediğiniz metin ve bağlantıları değiştirmekten çekinmeyin. İşte test sitemizde nasıl göründüğü.
4. WordPress’te Özel Pano Widget’ları Ekleme
Muhtemelen birçok eklenti ve temanın WordPress kontrol paneline eklediği widget’ları görmüşsünüzdür. Aşağıdaki kodu yapıştırarak kendiniz de bir tane ekleyebilirsiniz:
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}
function custom_dashboard_help() {
echo '<p>Welcome to Custom Blog Theme! Need help? Contact the developer <a href="mailto:yourusername@gmail.com">here</a>. For WordPress Tutorials visit: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';
}
İşte böyle görünecek:
Ayrıntılar için WordPress’te özel gösterge paneli widget’larının nasıl ekleneceğine ilişkin eğitimimize bakın.
5. WordPress’te Varsayılan Gravatarı Değiştirme
Bloglarda varsayılan gizemli adam avatarını gördünüz mü? Bunu kolayca kendi markalı özel avatarınızla değiştirebilirsiniz.
Varsayılan avatar olarak kullanmak istediğiniz resmi yükleyin ve bu kodu işlevler dosyanıza veya WPCode eklentisine ekleyin:
function wpb_custom_default_gravatar( $avatar_defaults ) {
$myavatar = 'https://example.com/wp-content/uploads/2022/10/dummygravatar.png';
$avatar_defaults[$myavatar] = 'Default Gravatar';
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'wpb_custom_default_gravatar' );
Şimdi Ayarlar ” Tartışma sayfasına gidebilir ve varsayılan avatarınızı seçebilirsiniz.
Ayrıntılı talimatlar için WordPress’te varsayılan gravatarı değiştirme kılavuzumuza bakın.
6. WordPress Altbilgisinde Dinamik Telif Hakkı Tarihi
Temanızdaki altbilgi şablonunu düzenleyerek bir telif hakkı tarihi ekleyebilirsiniz. Ancak, sitenizin ne zaman başladığını göstermeyecek ve bir sonraki yıl otomatik olarak değişmeyecektir.
Bu kod WordPress altbilgisine dinamik bir telif hakkı tarihi ekleyebilir:
function wpb_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "© " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}
Bu işlevi ekledikten sonra footer.php dosyanızı açmanız ve dinamik telif hakkı tarihini görüntülemek istediğiniz yere aşağıdaki kodu eklemeniz gerekir:
<?php echo wpb_copyright(); ?>
Bu fonksiyon ilk gönderinizin tarihini ve son gönderinizin tarihini arar. Daha sonra fonksiyonu çağırdığınız her yerde yılları döndürür.
İpucu: WPCode eklentisini kullanıyorsanız, iki kod parçacığını birleştirebilirsiniz. Bundan sonra, kod parçacığı ayarlarının ‘Ekleme’ bölümünde ‘Site Genelinde Altbilgi’ konumunu seçin. Bu, temanızın footer.php dosyasını düzenlemeden telif hakkı tarihini otomatik olarak altbilgide gösterecektir.
Daha fazla ayrıntı için WordPress’te dinamik telif hakkı tarihlerinin nasıl ekleneceğine ilişkin kılavuzumuza bakın.
7. WordPress’te Arka Plan Rengini Rastgele Değiştirme
WordPress blogunuzun arka plan rengini her ziyarette ve sayfanın yeniden yüklenmesinde rastgele değiştirmek mi istiyorsunuz? İşte bunu kolayca nasıl yapacağınız.
Öncelikle bu kodu temanızın functions dosyasına veya WPCode eklentisine ekleyin:
function wpb_bg() {
$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
$color ='#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].
$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];
echo $color;
}
Ardından, temanızdaki header.php dosyasını düzenlemeniz gerekir. <body>
etiketini bulun ve bu satırla değiştirin:
<body <?php body_class(); ?> style="background-color:<?php wpb_bg();?>">
Artık değişikliklerinizi kaydedebilir ve bu kodu çalışırken görmek için web sitenizi ziyaret edebilirsiniz.
Daha fazla ayrıntı ve alternatif yöntemler için WordPress’te arka plan rengini rastgele değiştirme eğitimimize bakın.
8. WordPress URL’lerini Güncelleyin
WordPress giriş sayfanız sürekli yenileniyorsa veya yönetici alanına erişemiyorsanız, WordPress URL’lerini güncellemeniz gerekir.
Bunu yapmanın bir yolu wp-config.php dosyasını kullanmaktır. Ancak bunu yaparsanız, ayarlar sayfasında doğru adresi ayarlayamazsınız. WordPress URL’si ve Site URL’si alanları kilitlenecek ve düzenlenemeyecektir.
Bunun yerine, bunu düzeltmek için bu kodu işlevler dosyanıza ekleyin:
update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );
example.com yerine kendi alan adınızı yazmayı unutmayın.
Giriş yaptıktan sonra, WordPress yönetici alanındaki Ayarlar sayfasına gidebilir ve URL’leri ayarlayabilirsiniz.
Bundan sonra, fonksiyonlar dosyasına veya WPCode’a eklediğiniz kodu kaldırmalısınız. Aksi takdirde, sitenize her erişildiğinde bu URL’leri güncellemeye devam edecektir.
9. WordPress’te Ek Görsel Boyutları Ekleme
WordPress, bir resim yüklediğinizde otomatik olarak çeşitli resim boyutları oluşturur. Temanızda kullanmak için ek görsel boyutları da oluşturabilirsiniz.
Bu kodu temanızın işlevler dosyasına veya bir WPCode parçacığı olarak eklemeniz yeterlidir:
add_image_size( 'sidebar-thumb', 120, 120, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode
Bu kod, farklı boyutlarda üç yeni görüntü boyutu oluşturur. Gereksinimlerinizi karşılamak için kodu değiştirmekten çekinmeyin.
Daha sonra bu kodu kullanarak temanızın herhangi bir yerinde bir resim boyutu görüntüleyebilirsiniz:
<?php the_post_thumbnail( 'homepage-thumb' ); ?>
Ayrıntılı talimatlar için WordPress’te ek resim boyutları oluşturma kılavuzumuza bakın.
10. Temanıza Yeni Gezinti Menüleri Ekleme
WordPress, tema geliştiricilerinin gezinti menülerini tanımlamasına ve ardından görüntülemesine olanak tanır.
Temanızda yeni bir menü konumu tanımlamak için bu kodu temanızın işlevler dosyasına veya yeni bir WPCode snippet’i olarak ekleyebilirsiniz:
function wpb_custom_new_menu() {
register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'wpb_custom_new_menu' );
Artık WordPress panonuzdaki Görünüm ” Menüler bölümüne gidebilir ve adresinde tema konumu seçeneği olarak ‘Özel Menüm ‘ü görebilirsiniz.
Not: Bu kod, tam site düzenleme özelliğine sahip blok temalarda da çalışacaktır. Eklemek Görünüm altındaki Menüler ekranını etkinleştirecektir.
Şimdi bu kodu temanızda navigasyon menüsünü görüntülemek istediğiniz yere eklemeniz gerekiyor:
<?php
wp_nav_menu( array(
'theme_location' => 'my-custom-menu',
'container_class' => 'custom-menu-class' ) );
?>
Ayrıntılı talimatlar için WordPress temalarına özel gezinme menülerinin nasıl ekleneceğine ilişkin kılavuzumuza bakın.
11. Yazar Profili Alanları Ekleme
WordPress’te yazar profillerinize ekstra alanlar eklemek mi istiyorsunuz? Bu kodu işlevler dosyanıza veya yeni bir WPCode parçacığı olarak ekleyerek bunu kolayca yapabilirsiniz:
function wpb_new_contactmethods( $contactmethods ) {
// Add Twitter
$contactmethods['twitter'] = 'Twitter';
//add Facebook
$contactmethods['facebook'] = 'Facebook';
return $contactmethods;
}
add_filter('user_contactmethods','wpb_new_contactmethods',10,1);
Bu kod, WordPress’teki kullanıcı profillerine Twitter ve Facebook alanları ekleyecektir.
Artık bu alanları yazar şablonunuzda şu şekilde görüntüleyebilirsiniz:
<?php echo get_the_author_meta('twitter') ?>
WordPress kaydında ek kullanıcı profili alanları ekleme kılavuzumuzu da görmek isteyebilirsiniz.
12. WordPress Temalarında Widget’a Hazır Alanlar veya Kenar Çubukları Ekleme
Bu en çok kullanılan kod parçacıklarından biridir ve birçok geliştirici WordPress temalarına widget’a hazır alanlar veya kenar çubukları eklemeyi zaten biliyor. Ancak bilmeyenler için bu listede olmayı hak ediyor.
Aşağıdaki kodu functions.php dosyanıza veya yeni bir WPCode snippet’i olarak yapıştırabilirsiniz:
// Register Sidebars
function custom_sidebars() {
$args = array(
'id' => 'custom_sidebar',
'name' => __( 'Custom Widget Area', 'text_domain' ),
'description' => __( 'A custom widget area', 'text_domain' ),
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
);
register_sidebar( $args );
}
add_action( 'widgets_init', 'custom_sidebars' );
Not: Bu kod, tam site düzenleme özelliğine sahip blok temalarda da çalışacaktır. Eklendiğinde Görünüm altındaki Widget’lar ekranı etkinleştirilecektir.
Artık Görünüm ” Widget ‘lar sayfasını ziyaret edebilir ve yeni özel widget alanınızı görebilirsiniz.
Bu kenar çubuğunu veya widget’a hazır alanı web sitenizde görüntülemek için, görüntülemek istediğiniz şablona aşağıdaki kodu eklemeniz gerekir:
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
<!–Default sidebar info goes here–>
<?php endif; ?>
Daha fazla ayrıntı için WordPress’te dinamik widget’a hazır alanların ve kenar çubuklarının nasıl ekleneceğine ilişkin kılavuzumuza bakın.
13. RSS Akışı Altbilgisini Değiştirme
Reklamlarını RSS beslemelerinde her gönderinin altına ekleyen bloglar gördünüz mü? Bunu basit bir işlevle kolayca gerçekleştirebilirsiniz. Aşağıdaki kodu yapıştırmanız yeterli:
function wpbeginner_postrss($content) {
if(is_feed()){
$content = 'This post was written by Syed Balkhi '.$content.'Check out WPBeginner';
}
return $content;
}
add_filter('the_excerpt_rss', 'wpbeginner_postrss');
add_filter('the_content', 'wpbeginner_postrss');
Daha fazla bilgi için, içerik ekleme ve RSS beslemelerinizi tamamen değiştirme hakkındaki kılavuzumuza bakın.
14. RSS Beslemelerine Öne Çıkan Görseller Ekleme
Gönderi küçük resmi veya öne çıkan resimler genellikle yalnızca site tasarımınızda görüntülenir. Aşağıdaki kodu kullanarak bu işlevi RSS beslemenize kolayca genişletebilirsiniz:
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');
Daha fazla ayrıntı için WordPress RSS beslemenize gönderi küçük resimlerinin nasıl ekleneceğine ilişkin kılavuzumuza bakın.
15. WordPress’te Oturum Açma Hatalarını Gizleme
Bilgisayar korsanları, yanlış kullanıcı adı veya şifre girip girmediklerini tahmin etmek için giriş hatalarını kullanabilir. WordPress’te giriş hatalarını gizleyerek giriş alanınızı ve WordPress web sitenizi daha güvenli hale getirebilirsiniz.
Aşağıdaki kodu temanızın işlevler dosyasına veya yeni bir WPCode parçacığı olarak eklemeniz yeterlidir:
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );
Artık kullanıcılar yanlış bir kullanıcı adı veya şifre girdiklerinde genel bir mesaj görecekler.
Daha fazla bilgi için WordPress hata mesajlarında oturum açma ipuçlarını devre dışı bırakma eğitimimize bakın.
16. WordPress’te E-posta ile Girişi Devre Dışı Bırakma
WordPress, kullanıcıların kullanıcı adları veya e-posta adresleriyle giriş yapmalarına olanak tanır. Bu kodu işlevler dosyanıza veya yeni bir WPCode parçacığı olarak ekleyerek WordPress’te e-posta ile oturum açmayı kolayca devre dışı bırakabilirsiniz:
remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
Daha fazla bilgi için WordPress’te e-posta ile oturum açma özelliğinin nasıl devre dışı bırakılacağına ilişkin kılavuzumuza bakın.
17. WordPress’te Arama Özelliğini Devre Dışı Bırakın
WordPress sitenizin arama özelliğini devre dışı bırakmak istiyorsanız, bu kodu işlevler dosyanıza veya yeni bir WPCode parçacığına eklemeniz yeterlidir:
function wpb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ( $error == true )
$query->is_404 = true;
}}
Bu kod basitçe arama sorgusunu değiştirerek devre dışı bırakır ve arama sonuçları yerine 404 hatası döndürür.
Daha fazla bilgi için WordPress arama özelliğini devre dışı bırakma eğitimimize bakın.
Profesyonel İpucu: WordPress aramadan vazgeçmek yerine SearchWP‘yi denemenizi öneririz. Web sitenize güçlü ve özelleştirilebilir bir arama özelliği eklemenizi sağlayan piyasadaki en iyi WordPress arama eklentisidir.
18. RSS Akışında Gönderileri Geciktirme
Bazen dilbilgisi hatası veya yazım hatası olan bir makale yayınlayabilirsiniz.
Hata yayına girer ve RSS beslemesi abonelerinize dağıtılır. WordPress blogunuzda e-posta abonelikleriniz varsa, bu aboneler de bir bildirim alacaktır.
RSS beslemenizdeki gönderileri geciktirmek için bu kodu temanızın işlevler dosyasına veya yeni bir WPCode snippet’i olarak eklemeniz yeterlidir:
function publish_later_on_feed($where) {
global $wpdb;
if ( is_feed() ) {
// timestamp in WP-format
$now = gmdate('Y-m-d H:i:s');
// value for wait; + device
$wait = '10'; // integer
// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
// add SQL-sytax to default $where
$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');
Bu kodda $wait veya gecikme süresi olarak 10 dakika kullandık. Bunu istediğiniz herhangi bir dakika sayısıyla değiştirmekten çekinmeyin.
Bir eklenti yöntemi ve daha fazla bilgi için, gönderilerin WordPress RSS beslemesinde görünmesini nasıl geciktireceğinize ilişkin ayrıntılı kılavuzumuza bakın.
19. WordPress’te Alıntılar için Daha Fazla Oku Metnini Değiştirme
Gönderilerinizde alıntıdan sonra görünen metni değiştirmek mi istiyorsunuz? Bu kodu temanızın fonksiyonlar dosyasına veya yeni bir WPCode snippet’i olarak eklemeniz yeterlidir:
function modify_read_more_link() {
return '<a class="more-link" href="' . get_permalink() . '">Your Read More Link Text</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );
20. WordPress’te RSS Beslemelerini Devre Dışı Bırakma
Tüm web sitelerinin RSS beslemelerine ihtiyacı yoktur. WordPress sitenizde RSS beslemelerini devre dışı bırakmak istiyorsanız, bu kodu temanızın işlevler dosyasına veya yeni bir WPCode snippet’i olarak ekleyin:
function new_excerpt_more($more) {
global $post;
return '<a class="moretag"
href="'. get_permalink($post->ID) . '">Your Read More Link Text</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
Eklenti yöntemi hakkında daha fazla bilgi için WordPress’te RSS beslemelerinin nasıl devre dışı bırakılacağına ilişkin kılavuzumuza bakın.
21. WordPress’te Alıntı Uzunluğunu Değiştirme
WordPress alıntı uzunluklarını 55 kelime ile sınırlar. Bunu değiştirmeniz gerekiyorsa bu kodu işlevler dosyanıza veya yeni bir WPCode parçacığı olarak ekleyebilirsiniz:
function new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');
Alıntılarda göstermek istediğiniz kelime sayısını 100 olarak değiştirmeniz yeterlidir.
Alternatif yöntemler için WordPress alıntılarını özelleştirme (kodlama gerektirmez) hakkındaki kılavuzumuza göz atmak isteyebilirsiniz.
22. WordPress’te Yönetici Kullanıcı Ekleme
WordPress şifrenizi ve e-postanızı unuttuysanız, bir FTP istemcisi kullanarak bu kodu temanızın işlevler dosyasına ekleyerek bir yönetici kullanıcı ekleyebilirsiniz:
function wpb_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','wpb_admin_account');
Kullanıcı adı, şifre ve e-posta alanlarını doldurmayı unutmayın.
Önemli: WordPress sitenize giriş yaptıktan sonra, kodu işlevler dosyanızdan silmeyi unutmayın.
Bu konuda daha fazla bilgi için WordPress’te FTP kullanarak yönetici kullanıcı ekleme eğitimimize göz atın.
23. Giriş Sayfasında Dil Değiştiriciyi Devre Dışı Bırak
Çok dilli bir web sitesi işletiyorsanız, WordPress giriş sayfasında bir dil seçici görüntüler. Aşağıdaki kodu functions.php dosyanıza veya yeni bir WPCode snippet’i olarak ekleyerek kolayca devre dışı bırakabilirsiniz:
add_filter( 'login_display_language_dropdown', '__return_false' );
24. WordPress’te Toplam Kayıtlı Kullanıcı Sayısını Gösterme
WordPress sitenizdeki toplam kayıtlı kullanıcı sayısını göstermek mi istiyorsunuz? Bu kodu temanızın işlevler dosyasına veya yeni bir WPCode parçacığı olarak eklemeniz yeterlidir:
function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
// Creating a shortcode to display user count
add_shortcode('user_count', 'wpb_user_count');
Bu kod, sitenizdeki toplam kayıtlı kullanıcı sayısını görüntülemenizi sağlayan bir kısa kod oluşturur.
Şimdi, toplam kullanıcı sayısını göstermek istediğiniz yazınıza veya sayfanıza [user_count]
kısa kodunu eklemeniz yeterlidir.
Daha fazla bilgi ve eklenti yöntemi için WordPress’te toplam kayıtlı kullanıcı sayısını görüntüleme eğitimimize bakın.
25. Belirli Kategorileri RSS Akışından Çıkarın
WordPress RSS beslemenizden belirli kategorileri hariç tutmak mı istiyorsunuz? Bu kodu temanızın işlevler dosyasına veya yeni bir WPCode snippet’i olarak ekleyebilirsiniz:
function exclude_category($query) {
if ( $query->is_feed ) {
$query->set('cat', '-5, -2, -3');
}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');
26. WordPress Yorumlarında URL Bağlantılarını Devre Dışı Bırakma
WordPress varsayılan olarak bir URL’yi yorumlarda tıklanabilir bir bağlantıya dönüştürür.
Aşağıdaki kodu işlevler dosyanıza veya yeni bir WPCode parçacığı olarak ekleyerek bunu durdurabilirsiniz:
remove_filter( 'comment_text', 'make_clickable', 9 );
Ayrıntılar için WordPress yorumlarında otomatik bağlantının nasıl devre dışı bırakılacağına ilişkin makalemize bakın.
27. WordPress Yazılarına Tek ve Çift CSS Sınıfları Ekleme
WordPress temalarının WordPress yorumları için tek veya çift sınıf kullandığını görmüş olabilirsiniz. Bu, kullanıcıların bir yorumun nerede bittiğini ve bir sonrakinin nerede başladığını görselleştirmelerine yardımcı olur.
Aynı tekniği WordPress yazılarınız için de kullanabilirsiniz. Estetik açıdan hoş görünür ve kullanıcıların çok sayıda içeriğe sahip sayfaları hızla taramasına yardımcı olur.
Bu kodu temanızın işlevler dosyasına eklemeniz yeterlidir:
function oddeven_post_class ( $classes ) {
global $current_class;
$classes[] = $current_class;
$current_class = ($current_class == 'odd') ? 'even' : 'odd';
return $classes;
}
add_filter ( 'post_class' , 'oddeven_post_class' );
global $current_class;
$current_class = 'odd';
Bu kod basitçe WordPress yazılarına tek veya çift sınıfı ekler. Artık bunları farklı şekilde biçimlendirmek için özel CSS ek leyebilirsiniz.
İşte başlamanıza yardımcı olacak bazı örnek kodlar:
.even {
background:#f0f8ff;
}
.odd {
background:#f4f4fb;
}
Sonuç şuna benzer bir şey olacaktır:
Daha ayrıntılı talimatlara mı ihtiyacınız var? WordPress temalarında yazılarınıza tek/çift sınıfları nasıl ekleyeceğinize ilişkin eğitimimize göz atın.
28. WordPress’te Yüklenecek Ek Dosya Türleri Ekleme
WordPress varsayılan olarak en sık kullanılan dosya türlerinden sınırlı sayıda yüklemenize izin verir. Ancak, diğer dosya türlerine izin verecek şekilde genişletebilirsiniz.
Bu kodu temanızın işlevler dosyasına eklemeniz yeterlidir:
function my_myme_types($mime_types){
$mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
$mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);
Bu kod SVG ve PSD dosyalarını WordPress’e yüklemenizi sağlar.
İzin vermek istediğiniz dosya türleri için mime türlerini bulmanız ve ardından bunları kodda kullanmanız gerekecektir.
Bu konu hakkında daha fazla bilgi için WordPress’te yüklenecek ek dosya türlerinin nasıl ekleneceğine ilişkin eğitimimize göz atın.
29. WordPress E-postalarında Gönderen Adını Değiştirme
WordPress varsayılan olarak giden e-postaları göndermek için var olmayan bir e-posta adresi (wordpress@yourdomain.com) kullanır.
Bu e-posta adresi, e-posta hizmet sağlayıcıları tarafından spam olarak işaretlenebilir.
WP Mail SMTP eklentisini kullanmak bunu düzeltmenin doğru yoludur.
E-posta teslim edilebilirlik sorunlarını giderir ve WordPress e-postalarınızı göndermek için gerçek bir e-posta adresi seçmenize olanak tanır.
Daha fazla bilgi edinmek için WordPress’in e-posta göndermeme sorununu nasıl çözeceğinize ilişkin kılavuzumuza bakın.
Öte yandan, bunu hızlı bir şekilde gerçek bir e-posta adresine dönüştürmek istiyorsanız, aşağıdaki kodu işlevler dosyanıza veya yeni bir WPCode snippet’i olarak ekleyebilirsiniz:
// Function to change email address
function wpb_sender_email( $original_email_address ) {
return 'tim.smith@example.com';
}
// Function to change sender name
function wpb_sender_name( $original_email_from ) {
return 'Tim Smith';
}
// Hooking up our functions to WordPress filters
add_filter( 'wp_mail_from', 'wpb_sender_email' );
add_filter( 'wp_mail_from_name', 'wpb_sender_name' );
E-posta adresini ve adı kendi bilgilerinizle değiştirmeyi unutmayın.
Bu yöntemle ilgili sorun, WordPress’in e-posta göndermek için hala mail() işlevini kullanıyor olması ve bu tür e-postaların büyük olasılıkla spam ile sonuçlanmasıdır.
Daha iyi alternatifler için, giden WordPress e-postalarında gönderen adının nasıl değiştirileceğine ilişkin eğitimimize bakın.
30. WordPress Yazılarına Yazar Bilgi Kutusu Ekleme
Çok yazar lı bir site işletiyorsanız ve yazılarınızın sonunda yazar biyografilerini sergilemek istiyorsanız bu yöntemi deneyebilirsiniz.
Bu kodu işlevler dosyanıza veya yeni bir WPCode parçacığı olarak ekleyerek başlayın:
function wpb_author_info_box( $content ) {
global $post;
// Detect if it is a single post with a post author
if ( is_single() && isset( $post->post_author ) ) {
// Get author's display name
$display_name = get_the_author_meta( 'display_name', $post->post_author );
// If display name is not available then use nickname as display name
if ( empty( $display_name ) )
$display_name = get_the_author_meta( 'nickname', $post->post_author );
// Get author's biographical information or description
$user_description = get_the_author_meta( 'user_description', $post->post_author );
// Get author's website URL
$user_website = get_the_author_meta('url', $post->post_author);
// Get link to the author archive page
$user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
// Get User Gravatar
$user_gravatar = get_avatar( get_the_author_meta( 'ID' , $post->post_author) , 90 );
if ( ! empty( $display_name ) )
$author_details = '<p class="author_name">About ' . $display_name . '</p>';
if ( ! empty( $user_description ) )
// Author avatar and bio will be displayed if author has filled in description.
$author_details .= '<p class="author_details">' . $user_gravatar . nl2br( $user_description ). '</p>';
$author_details .= '<p class="author_links"><a href="'. $user_posts .'">View all posts by ' . $display_name . '</a>';
// Check if author has a website in their profile
if ( ! empty( $user_website ) ) {
// Display author website link
$author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow noopener">Website</a></p>';
} else {
// if there is no author website then just close the paragraph
$author_details .= '</p>';
}
// Pass all this info to post content
$content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
}
return $content;
}
// Add our function to the post content filter
add_action( 'the_content', 'wpb_author_info_box' );
// Allow HTML in author bio section
remove_filter('pre_user_description', 'wp_filter_kses');
Ardından, daha iyi görünmesi için bazı özel CSS ‘ler eklemeniz gerekecektir.
Bu örnek CSS’yi bir başlangıç noktası olarak kullanabilirsiniz:
.author_bio_section{
background: none repeat scroll 0 0 #F5F5F5;
padding: 15px;
border: 1px solid #ccc;
}
.author_name{
font-size:16px;
font-weight: bold;
}
.author_details img {
border: 1px solid #D8D8D8;
border-radius: 50%;
float: left;
margin: 0 10px 10px 0;
}
Yazar kutunuz bu şekilde görünecektir:
Bir eklenti yöntemi ve daha ayrıntılı talimatlar için WordPress yazılarına yazar bilgi kutusu ekleme hakkındaki makalemize göz atın.
31. WordPress’te XML-RPC’yi Devre Dışı Bırakma
XML-RPC, üçüncü taraf uygulamaların WordPress sitenizle uzaktan iletişim kurmasını sağlayan bir yöntemdir. Bu, güvenlik sorunlarına neden olabilir ve bilgisayar korsanları tarafından istismar edilebilir.
WordPress’te XML-RPC’yi kapatmak için aşağıdaki kodu işlevler dosyanıza veya yeni bir WPCode parçacığı olarak ekleyin:
add_filter('xmlrpc_enabled', '__return_false');
Daha fazla bilgi için WordPress’te XML-RPC’nin nasıl devre dışı bırakılacağına ilişkin makalemizi okumak isteyebilirsiniz.
32. Öne Çıkan Görselleri Yazılara Otomatik Olarak Bağlayın
WordPress temanız öne çıkan görselleri tam makalelere otomatik olarak bağlamıyorsa, bu yöntemi deneyebilirsiniz.
Bu kodu temanızın işlevler dosyasına veya yeni bir WPCode snippet’i olarak eklemeniz yeterlidir:
function wpb_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', 'wpb_autolink_featured_images', 10, 3 );
WordPress’te öne çıkan görselleri yazılara otomatik olarak nasıl bağlayacağınızla ilgili makalemizi okumak isteyebilirsiniz.
33. WordPress’te Blok Düzenleyiciyi Devre Dışı Bırakma
WordPress, içerik yazmak ve web sitenizi düzenlemek için modern ve sezgisel bir editör kullanır. Bu editör, yaygın olarak kullanılan içerik ve düzen öğeleri için bloklar kullanır, bu nedenle Blok Düzenleyici olarak adlandırılır.
Ancak, bazı kullanım durumlarında eski Klasik Düzenleyiciyi kullanmanız gerekebilir.
Blok düzenleyiciyi devre dışı bırakmanın en kolay yolu Klasik Düzenleyici eklentisini kullanmaktır. Ancak, ayrı bir eklenti kullanmak istemiyorsanız, aşağıdaki kodu işlevler dosyanıza veya yeni bir WPCode parçacığı olarak eklemeniz yeterlidir:
add_filter('gutenberg_can_edit_post', '__return_false', 5);
add_filter('use_block_editor_for_post', '__return_false', 5);
Daha fazla ayrıntı için Blok Düzenleyicinin nasıl devre dışı bırakılacağı ve Klasik Düzenleyicinin nasıl kullanılacağı hakkındaki eğitimimize bakın.
34. WordPress’te Blok Widget’larını Devre Dışı Bırakma
WordPress, WordPress 5.8‘de klasik widget’lardan blok widget’lara geçiş yaptı. Yeni blok widget’larının kullanımı daha kolaydır ve klasik widget’lara göre size daha fazla tasarım kontrolü sağlar.
Ancak bazı kullanıcılar yine de klasik widget’ları kullanmak isteyebilir. Bu durumda, aşağıdaki kodu temanızın işlevler dosyasında veya yeni bir WPCode snippet’i olarak kullanabilirsiniz:
add_filter( 'use_widgets_block_editor', '__return_false' );
Daha fazla ayrıntı için, widget bloklarını devre dışı bırakma (klasik widget’ları geri yükleme) hakkındaki makalemize bakın.
35. WordPress’te Son Güncellenme Tarihini Görüntüleme
Ziyaretçiler WordPress blogunuzdaki bir yazıyı veya sayfayı görüntülediğinde, WordPress temanız yazının yayınlandığı tarihi gösterecektir. Bu, çoğu blog ve statik web sitesi için uygundur.
Ancak WordPress, eski makalelerin düzenli olarak güncellendiği web siteleri tarafından da kullanılır. Bu yayınlarda, yazının en son değiştirildiği tarih ve saati görüntülemek çok önemlidir.
Temanızın işlevler dosyasında veya yeni bir WPCode parçacığı olarak aşağıdaki kodu kullanarak son güncelleme tarihini gösterebilirsiniz:
$u_time = get_the_time( 'U' );
$u_modified_time = get_the_modified_time( 'U' );
// Only display modified date if 24hrs have passed since the post was published.
if ( $u_modified_time >= $u_time + 86400 ) {
$updated_date = get_the_modified_time( 'F jS, Y' );
$updated_time = get_the_modified_time( 'h:i a' );
$updated = '<p class="last-updated">';
$updated .= sprintf(
// Translators: Placeholders get replaced with the date and time when the post was modified.
esc_html__( 'Last updated on %1$s at %2$s' ),
$updated_date,
$updated_time
);
$updated .= '</p>';
echo wp_kses_post( $updated );
}
Alternatif yöntemler ve daha fazla ayrıntı için WordPress’te son güncelleme tarihinin nasıl görüntüleneceğine ilişkin kılavuzumuza bakın.
36. Yüklemeler için Küçük Harfli Dosya Adları Kullanın
Çok yazarlı bir web sitesi işletiyorsanız, yazarlar dosya adları büyük ve küçük harf olan resimler yükleyebilir.
Aşağıdaki kodun eklenmesi tüm dosya adlarının küçük harfle yazılmasını sağlar:
add_filter( 'sanitize_file_name', 'mb_strtolower' );
Not: Kod, mevcut yüklemeler için dosya adlarını değiştirmeyecektir. Alternatif yöntemler için WordPress’te görsellerin ve medya dosyalarının nasıl yeniden adlandırılacağına ilişkin eğitimimize bakın.
37. Ön Uçta WordPress Yönetici Çubuğunu Devre Dışı Bırakma
Varsayılan olarak, oturum açmış bir kullanıcı web sitenizi görüntülediğinde WordPress yönetici çubuğunu en üstte görüntüler.
Site yöneticileri hariç tüm kullanıcılar için yönetici çubuğunu devre dışı bırakabilirsiniz. Aşağıdaki kodu fonksiyon dosyanıza veya yeni bir WPCode snippet’i olarak eklemeniz yeterlidir:
/* Disable WordPress Admin Bar for all users */
add_filter( 'show_admin_bar', '__return_false' );
Daha fazla ayrıntı için, WordPress yönetici çubuğunun yöneticiler dışındaki tüm kullanıcılar için nasıl devre dışı bırakılacağına ilişkin kılavuzumuza bakın.
38. Yönetici Alanındaki Howdy Yönetici Metnini Değiştirme
WordPress, WordPress panosunda bir ‘Howdy Admin’ karşılaması görüntüler. ‘Admin’, oturum açan kullanıcının adıyla değiştirilir.
Aşağıdaki kodu işlevler dosyanıza veya yeni bir WPCode parçacığı olarak ekleyerek varsayılan karşılama mesajını kendi mesajınızla değiştirebilirsiniz:
function wpcode_snippet_replace_howdy( $wp_admin_bar ) {
// Edit the line below to set what you want the admin bar to display intead of "Howdy,".
$new_howdy = 'Welcome,';
$my_account = $wp_admin_bar->get_node( 'my-account' );
$wp_admin_bar->add_node(
array(
'id' => 'my-account',
'title' => str_replace( 'Howdy,', $new_howdy, $my_account->title ),
)
);
}
add_filter( 'admin_bar_menu', 'wpcode_snippet_replace_howdy', 25 );
Daha fazla ayrıntı için WordPress’te ‘Howdy Admin’ mesajını değiştirme makalemize bakın.
39. Blok Düzenleyicide Kod Düzenlemeyi Devre Dışı Bırakma
Blok düzenleyici, Kod Düzenleyiciye geçmenizi sağlar. Bu, manuel olarak bazı HTML kodları eklemeniz gerektiğinde kullanışlıdır.
Ancak, bu özelliği site yöneticileriyle sınırlı tutmak isteyebilirsiniz.
Bunu başarmak için aşağıdaki kodu işlevler dosyanıza veya bir WPCode parçacığı olarak ekleyebilirsiniz:
add_filter( 'block_editor_settings_all', function ( $settings ) {
$settings['codeEditingEnabled'] = current_user_can( 'manage_options' );
return $settings;
} );
40. Eklenti / Tema Dosyası Düzenleyicisini Devre Dışı Bırak
WordPress, eklenti dosyalarını düzenleyebileceğiniz yerleşik bir düzenleyici ile birlikte gelir. Bunu Eklentiler ” Eklenti Dosyası Düzenleyicisi sayfasına giderek görebilirsiniz.
Benzer şekilde, WordPress klasik temalar için Görünüm ” Tema Dosyası Düzenleyicisi adresinde bir dosya düzenleyicisi de içerir.
Not: Bir blok teması kullanıyorsanız, tema dosyası düzenleyicisi görünmez.
Temanızda veya eklentinizde değişiklik yapmak için bu düzenleyicileri kullanmanızı önermiyoruz. Koddaki küçük bir hata web sitenizi tüm kullanıcılar için erişilemez hale getirebilir.
Eklenti/tema düzenleyicisini devre dışı bırakmak için aşağıdaki kodu işlevler dosyanıza veya bir WPCode parçacığı olarak ekleyin:
// Disable the Plugin and Theme Editor
if ( ! defined( 'DISALLOW_FILE_EDIT' ) ) {
define( 'DISALLOW_FILE_EDIT', true );
}
Daha fazla ayrıntı için WordPress’te eklenti/tema düzenleyicisinin nasıl devre dışı bırakılacağına ilişkin eğitimimize bakın.
41. Yeni Kullanıcı Bildirim E-postalarını Devre Dışı Bırakma
Varsayılan olarak, WordPress web sitenize yeni bir kullanıcı katıldığında WordPress bir e-posta bildirimi gönderir.
Bir WordPress üyelik web sitesi işletiyorsanız veya kullanıcıların kaydolmasını gerektiriyorsanız, bir kullanıcı web sitenize her katıldığında bir bildirim alırsınız.
Bu bildirimleri kapatmak için aşağıdakileri fonksiyon dosyanıza veya yeni bir WPCode parçacığı olarak ekleyebilirsiniz:
function wpcode_send_new_user_notifications( $user_id, $notify = 'user' ) {
if ( empty( $notify ) || 'admin' === $notify ) {
return;
} elseif ( 'both' === $notify ) {
// Send new users the email but not the admin.
$notify = 'user';
}
wp_send_new_user_notifications( $user_id, $notify );
}
add_action(
'init',
function () {
// Disable default email notifications.
remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
remove_action( 'edit_user_created_user', 'wp_send_new_user_notifications' );
// Replace with custom function that only sends to user.
add_action( 'register_new_user', 'wpcode_send_new_user_notifications' );
add_action( 'edit_user_created_user', 'wpcode_send_new_user_notifications', 10, 2 );
}
);
Daha fazla ayrıntı için WordPress’te yeni kullanıcı e-posta bildirimlerinin nasıl devre dışı bırakılacağına ilişkin eğitimimize bakın.
42. Otomatik Güncelleme E-posta Bildirimlerini Devre Dışı Bırakma
WordPress zaman zaman güvenlik ve bakım güncellemelerini otomatik olarak yükleyebilir veya kritik bir güvenlik açığı olan bir eklentiyi güncelleyebilir.
Her güncellemeden sonra otomatik bir güncelleme e-postası bildirimi gönderir. Birden fazla WordPress web sitesi yönetiyorsanız, bu tür birkaç e-posta alabilirsiniz.
Bu e-posta bildirimlerini kapatmak için bu kodu işlevler dosyanıza veya yeni bir WPCode parçacığı olarak ekleyebilirsiniz:
/ Disable auto-update emails.
add_filter( 'auto_core_update_send_email', '__return_false' );
// Disable auto-update emails for plugins.
add_filter( 'auto_plugin_update_send_email', '__return_false' );
// Disable auto-update emails for themes.
add_filter( 'auto_theme_update_send_email', '__return_false' );
Daha fazla bilgi edinmek için WordPress’te otomatik güncelleme e-postalarının nasıl devre dışı bırakılacağına ilişkin makalemize bakın.
43. Bir Gönderiyi Kolayca Çoğaltmak için Bağlantı Ekleme
Yayınlanan gönderiye dokunmadan bir gönderinin tüm içeriğini düzenlemek için hızlı bir şekilde kopyalamanın daha kolay bir yolunu hiç dilediniz mi?
Aşağıdaki kod parçacığı, bir gönderiyi tüm içeriğiyle birlikte kolayca çoğaltmak için bir seçenek ekleyecektir:
// Add duplicate button to post/page list of actions.
add_filter( 'post_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );
// Let's make sure the function doesn't already exist.
if ( ! function_exists( 'wpcode_snippet_duplicate_post_link' ) ) {
/**
* @param array $actions The actions added as links to the admin.
* @param WP_Post $post The post object.
*
* @return array
*/
function wpcode_snippet_duplicate_post_link( $actions, $post ) {
// Don't add action if the current user can't create posts of this post type.
$post_type_object = get_post_type_object( $post->post_type );
if ( null === $post_type_object || ! current_user_can( $post_type_object->cap->create_posts ) ) {
return $actions;
}
$url = wp_nonce_url(
add_query_arg(
array(
'action' => 'wpcode_snippet_duplicate_post',
'post_id' => $post->ID,
),
'admin.php'
),
'wpcode_duplicate_post_' . $post->ID,
'wpcode_duplicate_nonce'
);
$actions['wpcode_duplicate'] = '<a href="' . $url . '" title="Duplicate item" rel="permalink">Duplicate</a>';
return $actions;
}
}
/**
* Handle the custom action when clicking the button we added above.
*/
add_action( 'admin_action_wpcode_snippet_duplicate_post', function () {
if ( empty( $_GET['post_id'] ) ) {
wp_die( 'No post id set for the duplicate action.' );
}
$post_id = absint( $_GET['post_id'] );
// Check the nonce specific to the post we are duplicating.
if ( ! isset( $_GET['wpcode_duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['wpcode_duplicate_nonce'], 'wpcode_duplicate_post_' . $post_id ) ) {
// Display a message if the nonce is invalid, may it expired.
wp_die( 'The link you followed has expired, please try again.' );
}
// Load the post we want to duplicate.
$post = get_post( $post_id );
// Create a new post data array from the post loaded.
if ( $post ) {
$current_user = wp_get_current_user();
$new_post = array(
'comment_status' => $post->comment_status,
'menu_order' => $post->menu_order,
'ping_status' => $post->ping_status,
'post_author' => $current_user->ID,
'post_content' => $post->post_content,
'post_excerpt' => $post->post_excerpt,
'post_name' => $post->post_name,
'post_parent' => $post->post_parent,
'post_password' => $post->post_password,
'post_status' => 'draft',
'post_title' => $post->post_title . ' (copy)',// Add "(copy)" to the title.
'post_type' => $post->post_type,
'to_ping' => $post->to_ping,
);
// Create the new post
$duplicate_id = wp_insert_post( $new_post );
// Copy the taxonomy terms.
$taxonomies = get_object_taxonomies( get_post_type( $post ) );
if ( $taxonomies ) {
foreach ( $taxonomies as $taxonomy ) {
$post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) );
wp_set_object_terms( $duplicate_id, $post_terms, $taxonomy );
}
}
// Copy all the custom fields.
$post_meta = get_post_meta( $post_id );
if ( $post_meta ) {
foreach ( $post_meta as $meta_key => $meta_values ) {
if ( '_wp_old_slug' === $meta_key ) { // skip old slug.
continue;
}
foreach ( $meta_values as $meta_value ) {
add_post_meta( $duplicate_id, $meta_key, $meta_value );
}
}
}
// Redirect to edit the new post.
wp_safe_redirect(
add_query_arg(
array(
'action' => 'edit',
'post' => $duplicate_id
),
admin_url( 'post.php' )
)
);
exit;
} else {
wp_die( 'Error loading post for duplication, please try again.' );
}
} );
Kodu ekledikten sonra, Gönderiler ” Tüm Gönder iler ekranına gidin ve farenizi bir gönderi başlığının üzerine getirin.
Seçeneklerin altında yeni bir ‘Çoğalt’ bağlantısı göreceksiniz.
Bağlantıya tıkladığınızda yazının tüm içeriğiyle birlikte bir kopyası oluşturulur. Daha sonra bu taslak üzerinde çalışabilirsiniz.
İşiniz bittiğinde, değişikliklerinizi kopyalayıp yayınlanan orijinal gönderiye yapıştırabilir ve kopyayı silebilirsiniz.
Bir eklenti yöntemi için, bir WordPress gönderisini veya sayfasını çoğaltma makalemize bakın.
44. WordPress Yönetici Panosundan Karşılama Panelini Kaldırma
Karşılama Paneli WordPress yönetici panosunda görünür. ‘Ekran Seçenekleri’ düğmesine tıklayarak kolayca kapatılabilir veya gizlenebilir.
Ancak, kullanıcılar için daha temiz bir gösterge tablosu deneyimi oluşturmak için çalışıyorsanız, bunu kalıcı olarak gizlemek isteyebilirsiniz.
Sitenizdeki tüm kullanıcılar için devre dışı bırakmak için aşağıdaki kodu ekleyin:
add_action(
'admin_init',
function () {
remove_action( 'welcome_panel', 'wp_welcome_panel' );
}
);
45. WordPress Admin’de Yazılar için Öne Çıkarılmış Görsel Sütunu Ekleme
WordPress varsayılan olarak yalnızca sitenizi görüntülerken veya bir yazı ya da sayfayı düzenlediğinizde öne çıkan görselleri gösterir.
Aşağıdaki kod, öne çıkan resimler için Yazılar ” Tüm Yazılar ekranına yeni bir sütun ekleyecektir:
add_filter( 'manage_posts_columns', function ( $columns ) {
// You can change this to any other position by changing 'title' to the name of the column you want to put it after.
$move_after = 'title';
$move_after_key = array_search( $move_after, array_keys( $columns ), true );
$first_columns = array_slice( $columns, 0, $move_after_key + 1 );
$last_columns = array_slice( $columns, $move_after_key + 1 );
return array_merge(
$first_columns,
array(
'featured_image' => __( 'Featured Image' ),
),
$last_columns
);
} );
add_action( 'manage_posts_custom_column', function ( $column ) {
if ( 'featured_image' === $column ) {
the_post_thumbnail( array( 300, 80 ) );
}
} );
Kodu ekledikten sonra nasıl görüneceği aşağıda açıklanmıştır.
46. WordPress Yönetici Alanını Yöneticiler Dışındaki Herkes İçin Engelleme
Bazı WordPress web sitelerinde kullanıcıların bir hesap açması gerekebilir. Örneğin, bir WordPress üyelik sitesi veya bir e-ticaret mağazası.
Bu tür eklentilerin çoğu bu kullanıcıların yönetici alanına erişimini engelleyecektir. Ancak, böyle bir eklenti kullanmıyorsanız, yöneticiler dışındaki tüm kullanıcıların yönetici alanına erişimini engellemek için aşağıdaki kodu ekleyebilirsiniz:
add_action( 'admin_init', function() {
if ( ! current_user_can( 'administrator' ) ) {
wp_redirect( home_url() );
exit;
}
} );
Diğer kullanıcı rollerine sahip kullanıcılar hesaplarına giriş yapmaya devam edebilirler, ancak giriş yaptıktan sonra ana sayfaya yönlendirileceklerdir.
Umarız bu makale WordPress’teki functions.php dosyası için bazı yeni kullanışlı püf noktaları öğrenmenize yardımcı olmuştur. Ayrıca, kod parçacıklarınızı kolayca paylaşmak için WordPress’te kod görüntüleme kılavuzumuzu ve Mac ve Windows için en iyi kod düzenleyicileri için uzman seçimlerimizi görmek isteyebilirsiniz.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Moinuddin Waheed
So much to accomplish with the help of functions.php
I think this is the core of the WordPress and if we do too much to it, we may lose many core functionalities.
having said this, using wpcode is a wise idea to insert anything for functionality without compromising the WordPress core.
I have a question though, if wpcode doesn’t insert it’s code in the main functions.php then how it works?
and if inserts it into the same, how updating wordpress doesn’t erase it?
WPBeginner Support
The code is stored in your database and the plugin hooks in the code in different ways depending on how you set it in the plugin.
Yönetici
Jiří Vaněk
I’ve noticed that on some websites, the top part of the browser changes color, specifically on mobile Chrome. Do you have any tested snippet that accomplishes this?
WPBeginner Support
We do have a guide for this, you can see our guide below:
https://www.wpbeginner.com/wp-tutorials/how-to-change-the-color-of-address-bar-in-mobile-browser-to-match-your-wordpress-site/
Yönetici
Jiří Vaněk
Thank you. I tried it on my own website and it works perfectly. Although only in Chrome, but it works.
Ralph
A lot of great ideas explained in novice friendly way. Thanks! I will try adding featured images to RSS feeds. It never worked before for some reason and now it will
WPBeginner Support
Glad to hear you found our tricks helpful
Yönetici
Ben
This is a pretty dangerous idea. Query strings exist for the purposes of cache busting, aka, making sure the end user has the latest version your js and css files.
Removing those is going to cause all sorts of issues for returning users down the line as their browser will assume nothing has changed and use their cached version rather than downloading the new one.
If for some reason you need to target a specific file and remove the query string (which I’ve had to do) you can use this code snippet:
// remove version from scripts and styles
function remove_version_scripts_styles($src) {
if (strpos($src, ‘yourfile.js’)) {
$src = remove_query_arg(‘ver’, $src);
}
return $src;
}
add_filter(‘script_loader_src’, ‘remove_version_scripts_styles’, 9999);
Gean Paulo Francois
Very useful article. I just saved this page offline so I can insert some of these with my websites. Anyway, should I add the codes to functions,php and not anywhere else?
WPBeginner Support
Correct, these codes are for your functions.php file.
Yönetici
Hussain Badusha
Nice compendium of some useful tricks and functions for wordpress. I added quite a new things to my wordpress knowledge after going through here.
I look forward even more from you if you wish to
WPBeginner Support
Glad you found our guide helpful
Yönetici
Satinder Satsangi
Oh WoW,
This is lifesaver most of the times, would like to know more about useful functions.
WPBeginner Support
Glad you found our guide helpful
Yönetici
vivek
Nice article,
Just have a doubt if I am supposed to add these codes in snippets plugin or somwhere in file? if its snippet plugin, it’s not working. Kindly put some light.
Thanks
WPBeginner Support
You would add these codes as a custom plugin or more commonly in your functions.php file
Yönetici
Beulah Wellington
Thank you for this tutorial. I learned a lot. I will be reading it again.
WPBeginner Support
You’re welcome, glad our guide can continue to help you
Yönetici
Ali Jahani
Hi
Thanks a lot of….
wpbeginner Is god team
WPBeginner Support
You’re welcome, glad you like our content
Yönetici
VISHAL CHOWDHRY
Superb Article.
Waiting for more of this
WPBeginner Support
Thank you, glad you liked our content
Yönetici
Miley Cyrus
Great Article it its really informative and innovative keep us posted with new updates. its was really valuable. thanks a lot.
WPBeginner Support
Glad our article could be helpful
Yönetici
John Dee
Almost NONE of these code snippets belong in your theme’s functions.php file. Only a few of them are related to the actual theme. Themes are for APPEARANCE. Create a PLUGIN for functionality. In any case, it would go in child theme’s functions.php file.
WPBeginner Support
Thank you for pointing this out, while we do mention site-specific plugins at the beginning of this article, we will be sure to look into making that statement clearer.
Yönetici
Suman Samanta
Nice information for a new bloggers. It is really helpful.
Richard Yzenbrandt
Thank you so much for making this resource available. WP for Beginners is the best goto site on the web!
alok patel
hey i am unable to add my post on specific page. when i write any blog post it shows in home page but i wanna also see in specific pages where i want to add. how i can out of from this problem. plz help me as soon as possible. if any video link thn plz share with reply. i m getting too much confused.
DONALD
I am creating a form to collect data from my users.
I have created the database from myphpAdmin
I have created the form.
I now created a new php.file in my child theme
I referenced it in the form too using action = “name.php”
Now i expect it to gather, peoples registration details.
But clicking on submit on the form, says, page cannot be found.
I dont know what i am not getting right.
Please help me
marvin N N
is there a plugin one can use to customise a theme’s default menu setting to suit your taste???
Sazzad Hossain
Thanks for this codes.
Shafiq Khan
Very useful post thanks.
A question – Because you’re updating the functions.php of a theme.
If you update the theme then you lose your tweaks.
Is there a way around this? Is it just a cause of using a Child theme?
Thanks
Lisa
Hi Shafiq,
Any changes you make to a parent theme will be overwritten when you update it. It is good practice to work with a child theme when making changes to a theme you didn’t build that is going to be updated so that you can keep the changes you made.
Jan
I use the plugin ‘My Custom Functions’ – it is simply adding all functions to the functions.php automatically – so no re-writing after every update needed
Jane Lawson
This is late, but you can also create a plugin for your site (e.g. “[Site name]’s custom plugin”). It does require a bit of expertise, however, since some functions clash with other plugins/the site theme.
Neil
Excellent post – thank you for the tips & tricks. They are all very helpful
Karakaplan
How to use these above with child theme functions file?
Minhaz
Nothing difference with parent or child theme’s functions.php
Joe
I’ve not done much with the functions file so it was good to see this article.
Thanks.
Jorge Rosa
Great snippets. Very handy and useful. Thank You!
sriganesh
this is best site for wordpress
WPBeginner Support
Thanks for the kind words
Yönetici
Bilal
will you tell me a most easy book for wordpress.
i am very new in this field .
thanks in advance
Al1
Another one :
// Remove query string from static files :
function remove_cssjs_ver( $src ) {
if( strpos( $src, ‘?ver=’ ) )
$src = remove_query_arg( ‘ver’, $src );
return $src;
}
add_filter( ‘style_loader_src’, ‘remove_cssjs_ver’, 10, 2 );
add_filter( ‘script_loader_src’, ‘remove_cssjs_ver’, 10, 2 );
siva
Great post, Could provide all wordpress function with example
shojib
This is the best blog for Wordpress users.
Parveen
Great post!!!
I am a newbie and looking for such tricks.
Thanks.
Deepak Kanyan
Really a nice blog. i had learn lot of things from here thanks admin.
Andrew
I tried #16 to add the post featured thumbnail to m RSS feed but when I tested it in mailchimp (paused my campaign and previewed) it appears that it has changed from “summary” to “full text”? Is this expected behaviour? I want to leave the emails (rss driven) as summary, and simply add the thumbnail featured image at the top.
Thanks for any help, I can’t find this on google anywhere.
WPBeginner Support
You can try replacing get_the_content() with get_the_excerpt().
Yönetici
Em Cloney
re: removing rss feed for static pages — is it correct that the txt one would replace in that code is ‘url’ (with a page link, including ) and ‘homepage’ (if you’d like it to say something else, like ‘some other site’)?
Mohan Manohar
This is huge list and great help. would like to know the first part of twitter counter code is to be pasted in function.php or directly into texty widget of theme.
grafx
There is an easier way to remove WordPress Version Number…
remove_action(‘wp_head’, ‘wp_generator’);
DANISH
such a great and useful tricks..
Marco
thank you so much!
Webtechideas
Such a nice list of useful tricks. It will help both plugin and theme developers.
ahmed
In #14, isn’t that a instead of ?
Mick O
Thanks for the helpful article. I really appreciate it. Can you possibly explain why the snippet to add Google analytics (#1) code includes the php declarations. If I have an existing functions.php file that is already defined with , do I need to include the markers again in the snippet? I’m trying to add other customizations into the functions.php and it’s getting hard to keep track.
Editorial Staff
It includes opening php because it is closing PHP tag to allow you to paste plain HTML Google analytics code.
Yönetici
Luke Gibson
The one about the copyright date seems a little OTT when you could simply cut and paste in © 2006- and it would do exactly the same job, just replace 2006 with whatever static start date you wish. Or am I missing something?
Editorial Staff
Yes, you can definitely do that. But if you are releasing this as part of a theme meant for distribution, then you can’t do that.
Yönetici
Zeeshan Arshad
Excellent, I was done with my theme and learning but there was much left. This post saved my day and of course I learnt many things as well.
Best Wishes!
DesignSkew
In “Add Author Profile Fields”, the function you mentioned to echo is not working.
Editorial Staff
The curauth would only work if it is on author.php file.
Yönetici
Mark
Great set of tools. I immediately copied the guest author function as I saw it and will now disable a clumsy plugin I’ve been using. Do you have a function that will provide the post ID of the item being worked with in the editor? I’m trying to auto fill a form with media attachments for the current post but have only been able to get it to work in a custom meta-box but not in a thickbox . The thickbox returns all the media files for all the posts when I just want the current posts’s attachments.
mommyblogger
Thanks for the great Wordpress tips! I was hoping you could help me with an additional one?
I’d like to prevent my tags/categories from spilling over onto another line by limiting the number of tags/categories that appear in the footer of my individual homepage posts. Is it possible to do this with the “the_excerpt”? I would also like the excerpt to be a “…read more” link and limit the number of characters in it. Here is the code it would need to be added to;
$tags_list = get_the_tag_list( ”, __( ‘, ‘, ‘mummyblog’ ) ); if ( $tags_list ): ?> <li> <?php printf( __( ‘<span class=”%1$s”>Tagged</span> %2$s’, ‘mummyblog’ ), ‘entry-utility-prep entry-utility-prep-tag-links’, $tags_list ); ?> </li> <?php endif; // End if $tags_list ?>
Thanks!
SteveEBoy
Like all the others have said below – just too good, a massive help for a newbie and very useful for learning too. Great site all round. Thanks.
LambrosPower
one of the best tutorials i read. Many important topics pointed out and for sure i didn’t know most of them since i just started wordpress custom design.
Xiaozhuli
This article is endlessly useful. I bookmarked it and often refer to it when updating my theme or trying to answer a question. Great job!
Mohammad Yeasin
You guys are just awesome. You know what, wpbegineer is the first website for which i have a separate folder in my bookmark menu. Too good for a wp begineer. youe name suits ur personality. lolz. One day i would must do something special for you. Inshallah.
The only problem i face is related post with thumbnail. your coder are not working. vDont know what to do. Whatever, Keep up the marvelous job. Love the site wpbegineer.
AA
Great post! You obviously know a lot about wordpress coding so I’m hoping you can answer a question. How to you remove the date & time stamp from a wordpress feed-rss? I’ve looked everywhere and can’t find any information on this. I’m working on a wordpress “site” and do not have a use for the dates. I have already removed them from the posts & pages.
Much thanks in advance!
Editorial Staff
Date is NOT optional for RSS feeds. It is a MUST because that is how posts / articles are organized (reverse chronological order). You can remove the display of dates from the template, but you cannot remove them from the XML.
Yönetici