WordPress'i Müşterilerin Karıştırması İçin Nasıl Zorlaştırılır?

Yayınlanan: 2022-03-10
Kısa özet ↬ WordPress, çok çeşitli kullanıcılar için kutudan çıktığı gibi çalışma esnekliği sağlayan birçok çok yönlü özellik ile birlikte gelen harika güçlü bir CMS'dir. Ancak, özel temalar ve eklentiler oluşturan bir profesyonelseniz, bazen bu özellikler sorunlu olabilir. Kullanıma hazır temaların birçok farklı kullanım örneğine uyum sağlamasına olanak tanıyan aynı özellikler ve seçenekler, bazen belirli bir kullanım durumu için özenle tasarlanmış özel bir temayı baltalamak için de kullanılabilir.

WordPress, çok çeşitli kullanıcılar için kutudan çıktığı gibi çalışma esnekliği sağlayan çok yönlü özelliklerle birlikte gelen olağanüstü güçlü bir CMS'dir. Ancak, özel temalar ve eklentiler oluşturan bir profesyonelseniz, bazen bu özellikler sorunlu olabilir. Kullanıma hazır temaların birçok farklı kullanım örneğine uyum sağlamasına olanak tanıyan aynı özellikler ve seçenekler, bazen belirli bir kullanım durumu için özenle tasarlanmış özel bir temayı baltalamak için de kullanılabilir.

Aşağıdaki makale, hemen hemen her WordPress projesinde tekrar tekrar kullandığım bir kod parçacıkları koleksiyonunu içermektedir. Hepsinin ortak noktası, gereksiz, kafa karıştırıcı veya güvenli olmayan işlevselliği sınırlamalarıdır. Aşağıdaki her şey herhangi bir sitede kullanılabilir, ancak bu ipuçları özellikle müşteriler için özel temalar ve eklentiler yapan profesyoneller için geçerlidir.

SmashingMag'de Daha Fazla Okuma :

  • WordPress Alt Teması Nasıl Oluşturulur ve Özelleştirilir
  • WordPress Son Kullanıcıları İçin Etkili Belgeler Yazma
  • WordPress'teki Gönderilerin Görünürlüğünü Kullanıcı Adlarıyla Sınırlandırma
  • WordPress'te Kullanıcı Rollerini Kullanma

Dikkat çeken fark, özel temaların belirli bir amaca hizmet etmek için oluşturulabilmesidir. Bu nedenle, yazarların içeriğindeki boşluklar çok daha dar olabilir ve olmalıdır . İyi tasarlanmış bir WordPress teması, yazarın yapmasına gerek kalmaması için mümkün olduğunca çok tasarım kararı vermelidir.

Atlamadan sonra daha fazlası! Aşağıdan okumaya devam edin ↓

Eklentileri ve Tema Düzenleyiciyi Devre Dışı Bırakın

WordPress panosu aracılığıyla herhangi birinin özel temanızı veya eklenti dosyalarınızı canlı olarak düzenlemesi için iyi bir neden yoktur. Profesyoneller bu şekilde çalışmazlar ve muggle'lar genellikle tek bir noktalı virgül atlayarak bir siteyi bozmanın ne kadar kolay olduğunu fark etmezler. Aynı zamanda bilgisayar korsanlarının yararlanabileceği bir güvenlik açığıdır. Neyse ki WordPress.org'daki arkadaşlarımız bu özelliği devre dışı bırakmayı gerçekten kolaylaştırdı. Aşağıdaki parçacığı wp-config.php dosyasına eklemeniz yeterlidir.

 define( 'DISALLOW_FILE_EDIT', true );

Bu, tema düzenleyiciye ek olarak eklenti düzenleyiciyi de devre dışı bırakacaktır. Bunu bir hata değil bir özellik olarak görüyorum.

Wordpress eklenti düzenleyici
Wordpress eklenti düzenleyici. (Büyük versiyonu görüntüle)

Görsel ve Metin Düzenleyiciyi Sınırlandırın

Varsayılan olarak, WordPress WYSIWYG düzenleyicisi, iyi tasarlanmış bir özel tema için çok fazla biçimlendirme seçeneğini destekler. Müşterilerin metin renklerini veya yazı tipi boyutlarını geçersiz kılmalarına izin vermek, en şık siteyi bile ucuz ve çirkin göstermenin hızlı bir yoludur. Blog yazısı metni her zaman sola hizalı olacak şekilde tasarlandıysa, neden yazara sağa hizalaması için bir düğme verilsin? Hakkında sayfasındaki metnin mor, kalın ve italik olması iyi görüneceğini düşünüyor musunuz? O halde müvekkilinizi bunu yapacak araçlarla donatmayın. Çoğu durumda görsel düzenleyiciyi tamamen devre dışı bırakmanızı öneririm.

Çirkin tipografi sayfası
Çirkin tipografi sayfası. (Büyük versiyonu görüntüle)

Görsel Düzenleyiciyi Devre Dışı Bırakma

Aşağıdaki parçacığı temanızın function.php dosyasına ekleyin ve WYSIWYG düzenleyicisini değiştirmek için sekme kaybolacaktır.

 function emersonthis_disable_visual_editor(){ # add logic here if you want to permit it selectively return false; } add_filter('user_can_richedit' , 'emersonthis_disable_visual_editor', 50);

Bu iyi bir başlangıç, ancak düz metin düzenleyicide kalın ve italik düğmelerin hala mevcut olduğunu fark edeceksiniz. Tecrübelerime göre, WYSIWYG editörünün anlık tatmini ortadan kalktığında müşteriler bu düğmeleri çok daha az kötüye kullanıyor. Ama yine de gerekli değilse onları kaldırmayı tercih ederim.

Görsel düzenleyici sekmesi
Görsel düzenleyici sekmesi. (Büyük versiyonu görüntüle)

Kalın ve İtalik Hızlı Etiketleri Metin Düzenleyiciden Kaldırma

Metin düzenleyicide, seçili metni <strong> ve <em> etiketleriyle saracak hızlı etiket düğmeleri bulunur. Aşağıdaki kodu temanızın function.php dosyasına ekleyin ve yazarların artık kalın veya italik düğmeleri olmayacak.

 # Removes bold and italic quicktags from text editor function emersothis_quicktags_settings( $qtInit ) { //To disable ALL butons it must be set to "," (not "") $qtInit['buttons'] = 'more,'; return $qtInit; } add_filter('quicktags_settings', 'emersonthis_quicktags_settings');

Bu, müşterinizin örneğin bir makalenin tamamını italikleştirmeye karar verme olasılığını ortadan kaldırır. Ancak bu, metin düzenleyiciye elle işaretleme yazma özelliğini ortadan kaldırmaz. Sıkıntıda olduğunuzda arada bir işinize yarayabilir.

Kullanıcının metni kendisinin biçimlendirmesi gerektiği nadir bir durumdaysanız, görsel düzenleyiciyi etkin bırakabilir, ancak belirli düğmeleri ayrı ayrı devre dışı bırakabilirsiniz.

Görsel Düzenleyicide Düğmeleri Devre Dışı Bırakma

Görsel düzenleyiciyi etkinleştirdiğim birkaç seferden biri, yazarların kendi iç yapısına sahip uzun yazılar veya sayfalar yazdığı zamandır. Örneğin, 10 sayfalık bir makalenin yazarı, alt başlık ekleme yeteneğine ihtiyaç duyabilir. Bu durumlarda, alt bölümler için özel sınıflar kurarım ve sonra gerekli olmayan diğer tüm biçimlendirme düğmelerini devre dışı bırakırım.

TinyMCE düzenleyicisini değiştirmek için WordPress API'si biraz zor çünkü kaldırmak istediğiniz her bir düğmeyi belirtmek için kullanılan kod adlarını aramanız gerekiyor. En sorunlu biçimlendirme düğmelerini içeren ikinci sıranın tamamını değiştiren "mutfak lavabosu" düğmesini kaldırarak paranızın karşılığını en iyi şekilde alırsınız. Aşağıdaki kodu temanızın function.php dosyasına eklemek bunu yapacaktır.

 # Remove visual editor buttons function emersonthis_tinymce_buttons($buttons) { # Remove the text color selector $remove = array('wp_adv'); //Add other button names to this array # Find the array key and then unset return array_diff($buttons,$remove); } add_filter( 'mce_buttons', 'emersonthis_tinymce_buttons' );

Kaldırmak istediğiniz düğmenin kod adını bulmanın bir yolu, formun işaretini incelemektir. Yazma sırasında, her düğmenin mce-i- ile başlayan bir sınıf adı ve ardından yukarıdaki diziye koyacağınız kod adı vardır.

“Medya Ekle” Düğmesini Kaldırın

Özel bir gönderi türü düzenleyici özelliğini desteklediğinde, "Medya ekle" düğmesi varsayılan olarak görünür. Ancak özel gönderi türleri çok çeşitli şeyler için kullanılabilir ve genellikle bu alanın resim içermesi uygun değildir.

Çirkin resimlerle dolu blog yazısı
Çirkin resimlerle dolu blog yazısı. (Büyük versiyonu görüntüle)

Çoğu zaman, yazarın metne eşlik edecek bir resim yayınlamasını beklediğimde, küçük resimler (diğer bir deyişle öne çıkan resimler) kullanırım. Bu, görüntüleri tema şablonlarına entegre etmeyi kolaylaştırır ve geliştiriciye, görüntülerin boyutu ve özellikleri üzerinde daha fazla kontrol sağlar.

Düzenleyicideki "Medya ekle" düğmesini kullanarak gömülü olan geçici fotoğrafları kontrol etmek zordur ve yazarın görüntüyü çevreleyen metne göre nereye eklediğine bağlı olarak garip görünme eğilimleri vardır. Ayrıca birçok yazar için kafa karışıklığına neden olurlar, çünkü bir bakışta "Medya ekle" düğmesi, sayfanın daha aşağısında görünen (varsayılan olarak) "Öne çıkan resim" yükleme düğmesiyle kolayca karıştırılır ve tema tarafından çok farklı şekilde kullanılabilir. Hemen hemen her zaman temanın function.php dosyasına aşağıdaki kodu ekleyerek kaldırırım.

 # Remove media buttons function emersonthis_remove_add_media(){ # do this conditionally if you want to be more selective remove_action( 'media_buttons', 'media_buttons' ); } add_action('admin_head', 'emersonthis_remove_add_media');

Belirli gönderi türleri için yalnızca medya düğmesini koşullu olarak kaldırmak için remove_action() önce mantık ekleyebilirsiniz. Örneğin, yazarların sayfalara resim eklemesine izin vermek isteyebilirsiniz, ancak bunun yerine küçük resimler kullanan blog gönderileri değil.

Tema Özelleştirici Seçeneklerini Devre Dışı Bırak

Bir alt tema üzerinde çalışıyorsanız, ana tema çocuk için uygun olmayan özelleştirme seçenekleri sunabilir. Özelleştirme seçenekleri, alt temanızda kullanılmamış olabilir veya bazı şeyleri bozma potansiyeline sahip olabilir. Her iki durumda da, WordPress tema özelleştirici API'si, temanızın functions.php dosyasına aşağıdaki pasajı ekleyerek bunlardan kurtulmanızı kolaylaştırır.

 # Remove customizer options. function emersonthis_remove_customizer_options( $wp_customize ) { // $wp_customize->remove_section( 'static_front_page' ); // $wp_customize->remove_section( 'title_tagline' ); $wp_customize->remove_section( 'colors' ); $wp_customize->remove_section( 'header_image' ); $wp_customize->remove_section( 'background_image' ); // $wp_customize->remove_section( 'nav' ); // $wp_customize->remove_section( 'themes' ); // $wp_customize->remove_section( 'featured_content' ); // $wp_customize->remove_panel( 'widgets' ); } add_action( 'customize_register', 'emersonthis_remove_customizer_options', 30);

Yukarıdaki snippet'teki her satır, yorumunu kaldırarak devre dışı bırakabileceğiniz ayrı bir tema özelleştirme seçeneğine karşılık gelir.

Kullanılmayan Pano Menü Öğelerini Gizle

Her site aynı türde içeriğe sahip değildir; örneğin bazı sitelerin blogu yoktur. Başka herhangi bir kullanıcı arayüzüne uyguladığımız aynı mantığı WordPress kontrol paneline de uygularsak, hiçbir şey yapmayan butonları göstermek kafa karıştırıcı ve gereksizdir. Bu örnekte, Gönderiler menü öğesi gereksiz olacaktır, bu nedenle, function.php dosyasına aşağıdaki parçacığı ekleyerek onu kaldıralım:

 function emersonthis_custom_menu_page_removing() { // remove_menu_page( 'index.php' ); //Dashboard // remove_menu_page( 'jetpack' ); //Jetpack* remove_menu_page( 'edit.php' ); //Posts remove_menu_page( 'upload.php' ); //Media // remove_menu_page( 'edit.php?post_type=page' ); //Pages remove_menu_page( 'edit-comments.php' ); //Comments // remove_menu_page( 'themes.php' ); //Appearance // remove_menu_page( 'plugins.php' ); //Plugins // remove_menu_page( 'users.php' ); //Users // remove_menu_page( 'tools.php' ); //Tools // remove_menu_page( 'options-general.php' ); //Settings } add_action( 'admin_menu', 'emersonthis_custom_menu_page_removing' );

Her satır, gösterge tablosundaki belirli bir menüye karşılık gelir. Dosya adları, gösterge tablosu menüsünde görünen adla her zaman eşleşmez, bu nedenle yorum satırları hızlı başvuru olarak bırakılır.

Sitenin bir blogu olsun ya da olmasın, Gönderiler menüsü varsayılan olarak görünür
Sitenin bir blogu olsun ya da olmasın, Gönderiler menü öğesi varsayılan olarak görünür. (Büyük versiyonu görüntüle)
06-mesaj-menü-gizli-önizleme-opt
Yazılar menü öğesi olmayan WordPress panosu. (Büyük versiyonu görüntüle)

Bu menü öğelerini kaldırmanın aslında kullanıcının izinlerini iptal etmediğini anlamak önemlidir. Bir kullanıcı yine de URL'yi kullanarak gizli menü öğesine doğrudan erişebilir. Amaç, gereksiz kontrolleri gizleyerek panoyu daha az karmaşık hale getirmekse, bu muhtemelen iyidir. Amaç, bir kullanıcının bu kontrollere erişmesini gerçekten engellemekse , kullanıcının rolünün yeteneklerini değiştirmeniz gerekecektir. Bunu başarmak için, bir eklentinin etkinleştirme kancasına aşağıdakine benzer bir snippet ekleyin (yalnızca bir kez çalıştırılması gerekir):

 global $wp_roles; // global class $role = 'author'; $cap = 'delete_published_posts'; $wp_roles->remove_cap( $role, $cap );

Varsayılan rollerin her biri için ekleyebileceğiniz veya kaldırabileceğiniz belirli yetenekleri bulmak için tüm yeteneklerin bu kapsamlı tablosunu kullanın.

Editörde Satır Sonlarının Nasıl Çalıştığına İlişkin Bir İpucu Ekleyin

Varsayılan olarak görsel düzenleyici (TinyMCE), yazar Return tuşuna bastığında yeni bir paragraf oluşturacaktır. Yalnızca eski moda bir satır sonu (yani satır başı) istiyorsanız, Shift+Return tuşlarına basmanız gerekir. Bu şık ve güçlüdür ancak birçok yazar için sezgisel değildir. Bir gönderide veya sayfada görünen “bir grup tuhaf beyaz boşluk”la ilgili kaçınılmaz şikayetten kaçınmak için hızlı bir hatırlatma eklemeye başladım.

Çirkin ekstra beyaz boşluk içeren blog yazısı
Çirkin ekstra beyaz boşluk içeren blog yazısı. (Büyük versiyonu görüntüle)

Functions.php dosyanıza aşağıdaki parçacığı ekleyin. Yazarlarınıza hatırlatmak istediğiniz her şeyi söylemek için $tip değerini değiştirin.

 # Adds instruction text after the post title input function emersonthis_edit_form_after_title() { $tip = '<strong>TIP:</strong> To create a single line break use SHIFT+RETURN. By default, RETURN creates a new paragraph.'; echo '<p>'.$tip.'</p>'; } add_action( 'edit_form_after_title', 'emersonthis_edit_form_after_title' );

Bu teknik, yazarların içerik eklerken veya düzenlerken hatırlamasını istediğiniz herhangi bir şey hakkında bir hatırlatıcı eklemek için kullanılabilir.

Boşluk ipucu eklenmiş gönderiler sayfası
Beyaz boşluk ipucu eklenmiş Mesajlar sayfası. (Büyük versiyonu görüntüle)

Yönetici Hesaplarını Doldurmayın

WordPress yönetici rolü çok güçlüdür ve büyük güçle birlikte büyük sorumluluk gelir. Bazı müşteriler, sitelerini yetkin bir şekilde yöneten deneyimli WordPress yetkili kullanıcılarıdır. Birçoğu değil. İkincisi, yönetici olarak ortalıkta dolanmamalıdır. Bunun yerine, onları bir editör yapın ve süper güçlü bir şifre ile ayrı bir yönetici hesabı oluşturun. İstemciyle devam eden bir ilişkiniz varsa, istemci siteyi kendileri yönetmeye hazır olana kadar bu kimlik bilgilerine bağlı kalabilirsiniz.

Yöneticilerle dolu kullanıcı listesi
Yöneticilerle dolu kullanıcı listesi. (Büyük versiyonu görüntüle)

Alternatif olarak, istemciye her iki kimlik bilgisini de verin ve yönetici kimlik bilgilerini güvenli bir yerde saklamasını ve yalnızca yönetici görevlerini gerçekleştirmek için kullanmasını sağlayın. Birçok müşteri yönetici kimlik bilgilerini anında kaybeder, ancak sorun değil: parola her zaman sıfırlanabilir ve bunlar genellikle sizi onlar için rutin site bakımını yapmak için yeniden işe alacak istemci türleridir.

Yönetici hesapları konusunda cimri olmanın en önemli nedeni, güvenlik açığı olmalarıdır. Hoş bir yan etki, yeni başlayan WordPress kullanıcılarının, yazı ekleme veya düzenleme gibi temel becerileri öğrenirken sıralanacak daha az menü olduğundan, yazar veya editör olarak oturum açtıklarında genellikle pano kullanıcı arayüzünü daha az bunaltıcı bulmalarıdır.

mu-Eklentiler kullanın

mu-plugins/ dizini uzun süredir var, ancak tanıştığım çoğu WordPress korsanı bunu hiç duymadı. “mu”, must use anlamına gelir. Dizin, eklentilerin kurulabileceği alternatif bir konumdur.

Wordpress panosunda eklentiler arayüzü kullanılmalıdır
WordPress kontrol panelinde eklentiler arayüzü kullanılmalıdır. (Büyük versiyonu görüntüle)

Aradaki fark, "kullanılması gereken" eklentilerin otomatik olarak etkin olması ve kontrol panelinde yanlışlıkla devre dışı bırakılamamasıdır. Ayrıca diğer eklentilerden önce yüklenirler. Bu, sitenin düzgün çalışması için mevcut olması gereken eklentiler için idealdir. Ayrıca, normalde özel temanızın function.php dosyasına sıkışıp kalabilecek, sunum amaçlı olmayan hack'ler için de harika bir alternatiftir. Örneğin, bir mu-plugin'de özel gönderi türleri tanımlamayı seviyorum, çünkü bu içerik belirli bir temanın etkin olup olmadığına bakılmaksızın devam etmelidir.

mu-plugins/ dizini kutudan çıkar çıkmaz. Bunu wp-content/ içinde manuel olarak yaratırsınız.

 wp-content/ mu-plugins/ plugins/ themes/ ...

En büyük sınırlama, WordPress'in yalnızca en üst düzeydeki mu-plugins/ dosyaları araması ve bir alt dizindeki kodu yok saymasıdır. Ancak, mu-plugins/ 'in üst kısmında bir kardeş alt dizinden kod yükleyen tek bir PHP dosyası oluşturarak bu sorunu çözebilirsiniz. Ayrıca güncelleme bildirimlerinin mu-eklentileri için geçerli olmadığını unutmayın. Mu-plugins/ 'i, müşterinin asla düşünmemesi gereken önemli kodu koyacak yer olarak düşünüyorum.

Codex'te kullanılması gereken eklentiler hakkında daha fazla bilgi edinin. Bunları devre dışı bırakmayı engelleyerek başka eklentilere ihtiyaç duymak istiyorsanız, WDS-Required-Plugins kitaplığını faydalı bulabilirsiniz.

Son Not

WordPress'in size ücretsiz olarak sunduğu işlevselliği devre dışı bırakmayı mantıksız bulabilirsiniz. Ancak, müşterinizin onlara çok fazla düğme vermeniz için size ödeme yapmadığını unutmayın. İşiniz, müşterinin hedeflerine uyacak şekilde tasarlanmış, etkili ve sağlam bir web sitesi yapmaktır. Sorunlu veya gereksiz işlevselliği devre dışı bırakarak aslında daha fazla değer sunarsınız.

Daha fazla snippet istiyorsanız, periyodik olarak eklediğim diğerlerinin yanı sıra yukarıdaki hilelerin güncel sürümlerini içeren kullanışlı WordPress snippet'lerinin genel bir GitHub deposunu oluşturdum. Paylaşmak istediğiniz kendi kullanışlı snippet'leriniz varsa, çekme istekleri memnuniyetle karşılanır!