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.
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
Michele Welch
Awesome post! Can’t wait to get started on the custom dashboard gravatar! Really exceptional post.
Phil
Great article, I’ve bookmarked it for future reference. Just found wpbeginner by chance what a great resource, thanks!
wparena
it is really good that you compiled all impotent things at one place
Mark Welburn
Good stuff, bookmarked this already. Can see a few of these come to good use more than once. Cheers, Mark.
Connor Crosby
Just a note, be careful when you copy and paste the “end of excerpt” function. It showed a question mark instead of “…” since it was one character. I had to rewrite “…” for it show up.
Martin
Probably the best post about the use of functions.php. Thanks for the tricks and for saving our time.
Huw Rowlands
Wow! Some really handy stuff there!
Thanks for sharing.
mark.
I would suggest an addendum be made to Tip #3 mentioning the fact that this is not security in any way shape or form, and is definitely not an alternative to upgrading as people should.
Hiding the version number is only beneficial to those of us who like to keep unnecessary junk out of the HEAD of your HTML document. Outside of that, it serves no purpose and should not be confused with security; to help illustrate that point: http://dd32.id.au/2010/07/31/what-version-of-wordpress-is-behind-that-website/
helpin
Could you tell me if I need to add these codes for every theme which my multi site have? Is there any there way which these codes automatically apply to the newly added themes?
Thanks !
Editorial Staff
You would have to add these to your theme’s functions.php file. So if it is a theme that is available on all networks, then only once. If there are custom themes being used on each network site, then you would have to do it on each….
Yönetici
Connor Crosby
Very nice list. I didn’t know you could do so much with the functions.php file!
Andy
You guys rock!!! Thanks for the awesome post.
Best,
Andy
Jennifer R
thanks you for these useful tricks
Marcelo Torres
Wow very good! Thanks for sharing
tarpontech
Best Damn Wordpress Article I’ve ever stumbled across.
ddeja
Thanks for those tips. Some are new for me. So I will be probably try to use them:)
Thanks again.
Chuck Reynolds
Since WP3 final release you need to update #11 to
add_theme_support( ‘menus’ );
Editorial Staff
Fixed thanks
Yönetici
William
Thanks for the insightful post. Registering sidebar widgets and customising the excerpt mode is going to be handy. Cheers
Kate Mag
Thanks for sharing extremely useful tricks. I didn’t know few tricks before, i know now!.
Adam
Okay, the dynamic copyright date in the footer is one of the coolest tricks for Wordpress I’ve come across. Always hate having to do that each year, but not anymore. Thanks for sharing that one!
Susan
Hi, I am trying to change the default gravatar. The option to choose my new gravatar is showing up however instead of my pic for my gravatar it is showing a broken pic link. I know the path works cause it does when I plug it in to the browser the pic comes up. I have also tried .gif, .png, .jpg and they are all broken. Also it is sized per my theme at 48px X 48px Can you help?
Susan
I finally got it!! Thanks for the awesome post btw.
Dave Z
There are some good suggestions here. Implementation could be improved for a few of them.
For instance, in #8 – Dynamic Copyright, it would probably be better to call the function during the publish_page and publish_post actions. Then, instead of printing the year to the screen, the value (year range) could be stored in the options table (with update_option()). In the theme, you would do something like: echo get_option( ‘comicpress_copyright’, date( ‘Y’ ) );. This would give the current year as the default date, or your preset range. The advantage here is that you eliminate the constant need to query the database for the years during every page load (since get_option can be configured to load automatically with the rest of the options). WordPress can already be heavy on database queries, no need to add an additional one if it can be avoided!
#18 – Remove Login Errors is removing -all- login errors, which could be bad because it also omits notices about disabled cookies, etc. A more effective approach would be to have the function return:
str_replace( array( ‘Invalid username’, ‘Incorrect password’ ), ‘Invalid username or password’, $str );
This keeps the user informed of potential errors while obfuscating which field the error actually occurred in. One thing to keep in mind is that if the username is correct, WordPress will auto-populate that field in subsequent login attempts. A hacker aware of WordPress operation would then know that the username was indeed valid. You can prevent this by commenting out the appropriate section in the wp-login.php file (lines 529-530 in version 2.9.2)–not ideal, I know, but there are no hooks at that point in the code.
Nice tips. I like the Post Thumbnails demonstration.
Editorial Staff
Thank you for your tips Really appreciate it.
Yönetici
Abdullah
Nice post.. very useful information.
Thnkx wpbeginner for making us more professional in our field.
Regards
Mohummad Abdullah
Zhu
Thank you for the tips, I already implemented a few (like the custom Gravatar) and they work just fine!
Waheed Akhtar
Great list. Bookmarked for any reference in future
Sahus Pilwal
Thanks for the extremely helpful tips. I wish I could find more extremely useful tricks/hack articles for WordPress!
Cheers, Sahus
patrick andrew adams
i can’t wait to try a few of these out, pretty new to wp still.
graphicbeacon
slight problem with NO. 14. Widget title starts with a h2 tag and ends with an h3- Wouldnt validate well methinks.
Todd Santoro
here is one for changing the login logo:
function the_custom_login_logo() {
echo ‘
h1 a { background-image:url(‘.get_bloginfo(‘template_directory’).’/images/custom-login-logo.gif) !important; }
‘;
}
add_action(‘login_head’, ‘the_custom_login_logo’);
Todd Santoro
Make sure you change the single quotes in this code to actuall single quotes as WP strips them in the comments so the PHP code is not executed. Better yet retype it and you will have no problem.
Cheers!
Kenton Bell
I am really impressed with this list, better options than hacking away at the theme files that get lost in upgrades. Thank you.
Raoni
Hi,
just an update, in item 4. Add a Custom Dashboard Logo, in WordPress 3 the “custom-logo.gif” now is a .png image.
Great collection!!!!
Andris
That was a very useful post. I just implemented “4. Add a custom Dashboard Logo” to my Website.
Todd Santoro
Great post. I have this in my WP tool box now. It has everything a theme designer would need in one article. Thanks WPBeginner!
Jake Goldman
Great tips. Got a kick out of seeing a few of mine in there. lots of new tips coming soon in my next article!
Editorial Staff
Will keep my eyes open
Yönetici
Tony
Finally! I know how to cure the incorrect comment count! Thanks, WPBeginner!
DaveK
Brilliance, I will be putting quite a few of these to good use.
Congrats on the site guys you go from strength to strength, I usually manage to find something useful here.
Keep up the good work.