Kopyalarken stilleri dogru sekilde alma
Paragraflar arasina br eklenmis ise bunu direkt kopyalamak asagidaki gibi bir soruna yol acar. Biz satirlari birlestirerek bu sorunu cozecegiz
CSS class vs Heading
Başlıkları genellikle header attributeler ile kullanıyoruz h1,h2,h3, etc.
Eğer başlık sitenin diğer başlıkları gibi ise onun için custom CSS yazmıyoruz, doğru heading’i girip sitenin stillerinden değerleri almasını bekliyoruz.
Sitede headingleri tek bir yerden kontrol etmek için bu şekilde yapıyoruz. Ve sitenin geri kalanı ile uyumlu olsun diye bu şekilde kullanmalıyız.
Tema editleme işi yaptığımız bir yerde bunlar için CSS yazmak yerine müşterinin mevcut değerlerini kullanabiliriz html’lere atayarak.
Yanlış Kullanım
Doğru Kullanım
h2’ye bir class verip ona sadece center değerini vermeliyiz. Diğer özellikler tema stili ile aynı olacak.
Studio Rules
- Always use Company name on comments
- Always use company e-mail on fields and use company name for name fields
- Use wf prefix
10up Engineering best practises
10up Engineering best practises
WordPress Query
PHP Standartlari
Css yakalama
Css seçerken pluginin verdiği otomatik isimlendirmelere custom css yazmak tehlikeli olabilir. Plugin bunları ilerde değiştirebilir, başka bir sayfaya yerleştirdiğimizde bunlar değişebilir veya başka bir yerde aynı özelliği kullanmamız gerekebilir. O yüzden eğer mümkünse o bölüme özel custom bir class verip pluginin otomatik classlarına güvenmemeliyiz.
sign out olup test yapmalı
Cache siteyi etkiliyor olabilir.
Wp Debug mod açılmalı
Custom CSS kullanma
Örneğin bir tabloyu ele alalım. Amacımız bu tabloyu değiştirmek ise tablo’yu aşağıdaki kod ile değiştirebiliriz ama bütün sitedeki tablolar etkilenir bundan.
table{}
Eğer elementor veya Divi tabloya bir class eklediyse şu şekilde tüm elementor tablolarını değiştirebiliriz
.elementor-table.table{}
Ama amacımız sadece belli bir bölgedeki tabloyu değiştirmek ise custom class bölümünden kendi class’ımızı ekleyip sadece ona işlem yapıyoruz.
.wf-custom-table{}
WordPress, tema ve pluginlerin kendi classlarina tam olarak guvenmemeliyiz, veya baska yerleri de etkileeycegini bilerek is yapmaliyiz. Degisikligi yaptiktan sonra baska sayfalari etkileyip etkilemedigini kontrol etmeliyiz.
Contruct’da tanımlanmış add action’u kaldırmak
Aşağıdaki PHP kütüphanesini kodlarınızın arasına yerleştirin.
/*
Plugin Name: WP Filters Extras
Plugin URI: http://www.beapi.fr
Description: Add 2 methods for WP Filter API
Version: 1.0.2
Author: BeAPI
Author URI: http://www.beapi.fr
Copyright 2012-2017 Amaury Balmer - amaury@beapi.fr
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* Allow to remove method for an hook when, it's a class method used and class don't have global for instanciation !
*/
function remove_filters_with_method_name( $hook_name = '', $method_name = '', $priority = 0 ) {
global $wp_filter;
// Take only filters on right hook name and priority
if ( ! isset( $wp_filter[ $hook_name ][ $priority ] ) || ! is_array( $wp_filter[ $hook_name ][ $priority ] ) ) {
return false;
}
// Loop on filters registered
foreach ( (array) $wp_filter[ $hook_name ][ $priority ] as $unique_id => $filter_array ) {
// Test if filter is an array ! (always for class/method)
if ( isset( $filter_array['function'] ) && is_array( $filter_array['function'] ) ) {
// Test if object is a class and method is equal to param !
if ( is_object( $filter_array['function'][0] ) && get_class( $filter_array['function'][0] ) && $filter_array['function'][1] == $method_name ) {
// Test for WordPress >= 4.7 WP_Hook class (https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/)
if ( is_a( $wp_filter[ $hook_name ], 'WP_Hook' ) ) {
unset( $wp_filter[ $hook_name ]->callbacks[ $priority ][ $unique_id ] );
} else {
unset( $wp_filter[ $hook_name ][ $priority ][ $unique_id ] );
}
}
}
}
return false;
}
/**
* Allow to remove method for an hook when, it's a class method used and class don't have variable, but you know the class name :)
*/
function remove_filters_for_anonymous_class( $hook_name = '', $class_name = '', $method_name = '', $priority = 0 ) {
global $wp_filter;
// Take only filters on right hook name and priority
if ( ! isset( $wp_filter[ $hook_name ][ $priority ] ) || ! is_array( $wp_filter[ $hook_name ][ $priority ] ) ) {
return false;
}
// Loop on filters registered
foreach ( (array) $wp_filter[ $hook_name ][ $priority ] as $unique_id => $filter_array ) {
// Test if filter is an array ! (always for class/method)
if ( isset( $filter_array['function'] ) && is_array( $filter_array['function'] ) ) {
// Test if object is a class, class and method is equal to param !
if ( is_object( $filter_array['function'][0] ) && get_class( $filter_array['function'][0] ) && get_class( $filter_array['function'][0] ) == $class_name && $filter_array['function'][1] == $method_name ) {
// Test for WordPress >= 4.7 WP_Hook class (https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/)
if ( is_a( $wp_filter[ $hook_name ], 'WP_Hook' ) ) {
unset( $wp_filter[ $hook_name ]->callbacks[ $priority ][ $unique_id ] );
} else {
unset( $wp_filter[ $hook_name ][ $priority ][ $unique_id ] );
}
}
}
}
return false;
}
Spesifik bir class’ı kaldırmak istiyorsanız aşağıdaki fonksiyonu kullanın
mepr-login-form-before-submit: Action Adi
MpMathCaptcha: Kaldiracagimiz fonskiyonun Class'inin adi
meprmath_show_field: Kaldiracagimiz fonksiyon adi
remove_filters_for_anonymous_class( 'mepr-login-form-before-submit', 'MpMathCaptcha', 'meprmath_show_field', 10 );
Ana temadaki fonksiyonu etkisiz kılma
Bu makale’de bir sürü yol anlatılmış
Function Priority çok önemli.
Takip edilecek kişiler
Yazıya başlamadan önce
Keyword analizi için
- Google otomatik tamamlama
- Google Related Search
- Youtube otomatik tamamlama
- Amazon.com otomatik tamamlama
- Belki pinterest.com
- Mangools Keyword Finder aracı
Elementor
Elementor’da teker teker tüm elementleri değiştirmek yerine globaller kullanılmalı.
WooCommerce 102
WooCommerce gelişmelerini takip etmek
Plugin isimlendirme
Eğer birisi plugine baktığında ne iş yaptığınız anlayabiliyorsa o iyi bir isimlendirmedir.
Örneği WooCommerce e extra tablar ekleyecekseniz ve single sayfasında bazı düzenlemeler yapacaksanız şöyle bir isim fena olmaz
“Company Name” Custom Code – WooCommerce Tabs & Single Layout Tweaks
WooCommerce Geliştirme 101
WooCommerce template değiştirme en son seçenek olmalı, çünkü template outdated oluyor bazen sadece bir satır kod için. Hooklar kullanılmalı – mümkün olduğu kadar
Plugin framework için skyverge’nin frameworku kullanilabilir: https://github.com/skyverge/wc-plugin-framework
Hookları guzelce görmek için: https://wordpress.org/plugins/simply-show-hooks/
Hangi templatelerin yüklendiğini görmek için güzel bir plugin: WooCommerce Template Hints
Test için WooCommerce Dev Helper kullanılabilir. Neler içeriyor:
“Bogus” demo ödeme sistemi testi yapabilirsiniz.
Query Monitor ile sitenin execution zamanlarını, assetlerin yüklerini öğrenebilirsiniz.
Genel Hatalar
Aşağıdaki gibi kazalara yol açmamak için Yoast SEO eklentisinde Google’da başlığın nasıl göründüğüne bakılmalı