Oturum açan WordPress kullanıcı bilgileri çeşitli şekillerde kullanılabilir: çok sayıda web uygulaması için kimlik doğrulama işlemlerinin bir parçası olarak özel eklenti panolarında veya seçenek ekranlarında, varsayılan WordPress arayüzünün bir parçası olarak ve diğerleri.
Bu özelliklerin ve işlevlerin çoğu, hem ücretsiz hem de premium WordPress eklentilerinin bir parçası olsa da, bazıları özel kodla da elde edilebilir. Oturum açmış WordPress kullanıcılarının bilgilerinin nasıl alınacağını bilmek, yeterli kodlama bilgisi ve becerisi verildiğinde, bu özelleştirmeleri uygulamanıza yardımcı olabilir.
Bu yazıda ele alacağımız konu biraz daha kodlama odaklı. Ve makale için hazırladığımız örnekler o kadar zor olmasa da, doğru bir şekilde anlaşılması ve uygulanması için çok fazla kodlama ve genel WordPress bilgisi gerektiriyor. Bu yüzden daha ileri gitmeden önce makalenin orta ve ileri düzey WordPress kullanıcılarına yönelik olduğuna dair bir sorumluluk reddi beyanı koymalıyız.
Bu yazıda, bu makale için oluşturduğumuz snippet’leri kullanarak oturum açmış kullanıcıların bilgilerini nasıl görüntüleyebileceğinizi, kişiselleştirilmiş karşılama mesajları ekleyebileceğinizi ve web sitesinde son oturum açma tarihlerini ve saatlerini nasıl takip edebileceğinizi göstereceğiz. Bunları web sitenizde kullanmak için FTP aracılığıyla alt temanızın functions.php dosyasına veya siteye özel bir eklentiye eklemeniz gerekir.
FTP işlemine daha az aşina olan kullanıcılara, FTP’nin nasıl kullanılacağına ilişkin makalemize önceden bakmalarını tavsiye ederiz. Ek olarak bir güvenlik önlemi olarak kodu eklemeden önce web sitenizin yedeğini almanızı önemle tavsiye ederiz. Bu durum ele alacağımız konu:
-
Temel Kullanıcı Bilgilerini Alma
-
WordPress Kancaları ve Kullanıcı Bilgilerini Görüntüleme
-
Kişiselleştirilmiş Kullanıcı Mesajlarını Görüntüleme
-
Yeni Bilgi Ekleme ve Görüntüleme – Kullanıcının Son Girişi
Temel Kullanıcı Bilgilerini Görüntüleme
Şu anda oturum açmış olan kullanıcı bilgilerini almanın ve görüntülemenin bir yolu, wp_get_current user() işlevini kullanmayı içerir. Spesifik olarak bu işlev, daha sonra ilgili özelliklerini görüntülemek veya diğer bazı eylemleri gerçekleştirmek için kullanabileceğiniz geçerli kullanıcı nesnesini alır. Bu bilgileri nasıl alabileceğinizi ve bazı kullanıcı özelliklerini nasıl gösterebileceğinizi gösteren basit bir kodlama parçası ekledik.
function qode_get_current_user_info() { $current_user = wp_get_current_user(); if ( ! ( $current_user instanceof WP_User ) ) { return; } echo sprintf( __( 'Username: %s,<br />', 'textdomain' ), esc_html( $current_user->user_login ) ); echo sprintf( __( 'User email: %s,<br />', 'textdomain' ), sanitize_email( $current_user->user_email ) ); echo sprintf( __( 'User first name: %s,<br />', 'textdomain' ), esc_html( $current_user->user_firstname ) ); echo sprintf( __( 'User last name: %s,<br />', 'textdomain' ), esc_html( $current_user->user_lastname ) ); echo sprintf( __( 'User display name: %s,<br />', 'textdomain' ), esc_html( $current_user->display_name ) ); echo sprintf( __( 'User ID: %s', 'textdomain' ), esc_html( $current_user->ID ) ); }
Kodu biraz detaylandıralım.
Bu kod parçacığı, qode_get_current_user_info() adlı özel bir işlevi temsil eder. İçinde, önce wp_get_current_user() işlevini kullanarak geçerli kullanıcının örneğini $current_user değişkeni içinde sakladık. Daha fazla güvenlik için, önceki eylemin başarıyla gerçekleştirilip gerçekleştirilmediğini kontrol eden bir koşullu ifade ekledik. Daha sonra özel işlevimizin geri kalan kısmı o kullanıcının bilgilerini yazdırır – kullanıcı adı, e-posta, ad, soyadı, görünen ad ve kimlik.
Daha önce belirtildiği gibi, bu özel işlevi kullanmak istiyorsanız, FTP yoluyla kodlama parçacığını alt temanızın functions.php dosyasına veya siteye özel bir eklentiye eklemeniz gerekir. Fakat bunu yaptıktan sonra bile, o anda oturum açmış olan kullanıcının belirtilen bilgilerini göremeyeceksiniz. Bunun nedeni, işlevlerin düzgün çalışması için yürütülmesi gerekmesidir.
Snippet’imiz onu çalıştıran tek satırlık bir koddan yoksun olduğundan, önceki kodlama snippet’ini önerilen iki konumdan birine ekledikten sonra hiçbir şey olmayacak. İşlevi çağıran, yani yürüten eksik kod satırını eklemeniz gerekir. Fakat bu, WordPress kancalarını anlamayı ve kullanmayı içerdiğinden, tahmin edilebileceğinden çok daha karmaşık bir görevdir.
WordPress Kancaları ve Kullanıcı Bilgilerini Görüntüleme
Basitçe söylemek gerekirse, WordPress kancaları, diğer geliştiricilerin veya WordPress kullanıcılarının WordPress web sitelerine yeni işlevler eklemelerine veya mevcut olanları değiştirmelerine olanak tanıyan, yer tutucu görevi gören kod parçalarıdır. Daha doğrusu, iki tür WordPress kancasını ayırt ediyoruz. Bunlar yeni özellikler ve işlevler eklemek için kullanılan eylem kancaları ve mevcut olanları değiştirmek için kullanılan filtre kancalarıdır.
Kullanıcıların, bu yer tutuculara “bağlanan” geri arama işlevleri veya geri aramalar adı verilen özel işlevler oluşturması gerekir. Bu anlamda, geri aramalar özel bir işlevselliği tanımlayan şeydir, “bağlanma” yönü ise geri arama kodunun yürütülmesini, yani işlevselliğin etkinleştirilmesini sağlayan şeydir.
Hatta geri arama(lar)ınızı bir kancaya bağlayarak, özel kodun kancanın bulunduğu yerde tam olarak yürütülmesini sağlarsınız. Bu durum WordPress’in önceki yıllarında yaygın bir uygulama olan yeni işlevler eklemek veya mevcut olanları değiştirmek için mevcut şablon dosyalarını değiştirmeniz gerekmeyeceği anlamına gelir. Bunun yerine, WordPress kancalarını kullanarak, daha önce bahsedildiği gibi alt temanızın functions.php dosyasında veya siteye özgü bir eklentide tüm değişikliklerinizi tek bir yerde tutabilirsiniz. Ve sadece bu da değil: her WordPress, tema veya eklenti güncellemesinden sonra yaptığınız değişikliklerin geçersiz kılınacağı konusunda endişelenmenize gerek kalmayacak.
Bununla birlikte “bağlanma” kısmı bir kod satırı gerektirir – eylem kancaları için add_action() işlevinin ve filtre kancaları için add_filter() işlevinin kullanılması. Bu işlevlerin her ikisi de dört argüman kabul eder. Bunlar şunlardır: “bağlanmak” istediğiniz kanca, bağlanan geri çağırma işlevi, geri çağırma işlevinin yürütme sırasına göre geri çağırma işlevinin önceliği ve geri çağırma işlevinin kabul ettiği bağımsız değişken sayısı.
Geri çağırma işlevinin varsayılan bağımsız değişken sayısı 1 iken varsayılan öncelik 10’a ayarlanır. Bu yüzden çoğu durumda, yalnızca ilk iki bağımsız değişken kullanılabilirken, diğer ikisi için varsayılan değerler dolaylı olarak kullanılır. İlk ikisi arasında, kodun yerleşimini belirlediği için kanca daha önemlidir. Bir WordPress web sitesine özelleştirme ekleme yöntemini bu kadar geliştirici dostu yapan, duruma göre yapıldığı için hangi kancanın kullanılacağı seçimidir.
Eklemek istediğiniz özelleştirmeye bağlı olarak WordPress çekirdek dosyalarının bir parçası olarak veya temanızın ve eklentilerinizin şablon dosyalarına yerleştirilmiş birçok uygun kanca olabilir. Fakat bunları bilmek, WordPress kodunun yanı sıra temalarınızın ve eklentilerinizin arkasındaki kod hakkında derinlemesine bilgi gerektirir. Bu yüzden WordPress koduna aşina olmayanlar için, aklınızdaki özelleştirmeyi uygulamak için en uygun kancayı bulmak üzere tema veya eklenti yazarlarınıza danışmanızı şiddetle öneririz.
Bunu açıkladıktan sonra, önceki bölümde bahsettiğimiz özel işleve dönelim – qode_get_current_user_info(). Bilgileri herhangi bir veriyi değiştirmeden yalnızca görüntülediğinden, bu, onu uygun bir eylem kancasına takmanız gerektiği anlamına gelir. Böylece, işlevi yürütmek için aşağıdaki kod satırını kullanırsınız:
add_action('suitable-action-hook-here','qode_get_current_user_info');
uygun-hareket-kancası-buraya uygun kısmı uygun bir hareket kancası ile düzgün bir şekilde değiştirilerek.
Kişiselleştirilmiş Kullanıcı Mesajlarını Görüntüleme
Web sitenize uygulayabileceğiniz basit ama etkili bir özellik, kişiselleştirilmiş kullanıcı mesajları eklemektir. Bu durum kullanıcılarınızla bağlar oluşturmanıza ve güçlendirmenize yardımcı olabilir. Pek çok farklı türde mesaj olsa da, örnek olarak oturum açmış kullanıcılarınız için benzersiz bir karşılama mesajının nasıl oluşturulacağını gösterirken, web sitesinin oturum açmamış ziyaretçilerine bu mesajın daha genelleştirilmiş bir sürümünü göstereceğiz. . Bu makale için özel olarak oluşturduğumuz snippet aşağıda verilmiştir.
function qode_welcome_message() { if ( is_user_logged_in() ) { $current_user = wp_get_current_user(); echo '<h1 class="welcome-title logged-in">' . sprintf( esc_html__( 'Welcome to the website, %s', 'textdomain' ), empty( $current_user->user_firstname ) ? $current_user->display_name : $current_user->user_firstname ) . "</h1>"; } else { echo '<h1 class="welcome-title">' . esc_html__( 'Welcome to the website', 'textdomain' ) . '</h1>'; } }
qode_welcome_message() adlı özel bir işlevi temsil eder. Bir karşılama mesajının iki versiyonunu görüntülemek için if … else … koşul koşulunu kullanan basit bir kodlama parçacığıdır. is_user_logged_in() işlevini kullanarak, mevcut web sitesi ziyaretçisinin oturum açıp açmadığını kontrol ettik ve oturum açmışlarsa, sonunda adlarının yer aldığı bir hoş geldiniz mesajı görüntülendi. Ziyaretçinin adının olmaması durumunda, onun yerine görünen adı gösterilir. Öte yandan, ziyaretçi oturum açmamışsa, genel bir karşılama mesajı gösterilir. Bu durum web sitenize, oturum açmış kullanıcılarınızın takdir edebileceği kişiselleştirme eklemenin çok basit bir yoludur.
Fakat ilk kodlama snippet’imize benzer şekilde, kodun çalıştırılması ve sonucunun web sitenizde görüntülenmesi için özel işlevi uygun bir kancaya bağlamanız gerekecektir. Özel işlevimiz herhangi bir argümanı değiştirmediğinden, bir eylem kancasına bağlanmalıdır. İhtiyacınız olan kod satırı aşağıdaki gibidir:
add_action( 'suitable-action-hook-here, 'qode_welcome_message' );
uygun-hareket-kancası-buraya uygun kısmı uygun şekilde değiştirilmiş olarak.
Yeni Bilgi Ekleme ve Görüntüleme – Kullanıcının Son Girişi
Başka bir örnek olarak kullanıcılarınıza nasıl ek özellikler atayacağınızı, ilgili verileri nasıl ekleyeceğinizi ve bunları web sitesinin arka ucunda nasıl görüntüleyeceğinizi göstereceğiz. Bu amaçla, Kullanıcılar > Tüm Kullanıcılar bölümünü, web sitesine kayıtlı tüm kullanıcılar için son giriş tarih ve saatini gösterecek şekilde nasıl genişletebileceğinizi göstereceğiz. Bu durum yöneticilerinizin, editörlerinizin, yazarlarınızın ve katkıda bulunanlarınızın web sitesinde yaptıkları değişiklikleri, bazılarının geri alınması gerektiğinde veya giriş yaptıkları sırada bazı şüpheli etkinliklerin meydana gelmesi durumunda izlemenize yardımcı olacaktır.
WordPress’te varsayılan olarak bulunmasa da, bu gün ve çağda böyle bir özellik web sitenizin güvenliği için çok önemlidir. Hatta kullanıcının son oturum açma tarihini nasıl görüntüleyebileceğiniz konusunda zaten ayrı bir makale oluşturmuş olsak da, konuya biraz farklı bir yaklaşım sunan bu örneği eklemeye karar verdik. İhtiyacınız olan özel kodlama pasajı aşağıdadır.
function qode_add_user_last_login( $columns ) { foreach( $columns as $key => $value ) { $columns['last_login'] = esc_html__( 'Last login', 'textdomain' ); } return $columns; } add_filter( 'manage_users_columns', 'qode_add_user_last_login' ); function qode_update_user_last_login( $user_login, $user ) { update_user_meta( $user->ID, 'last_login', time() + 3600 ); } add_action( 'wp_login', 'qode_update_user_last_login', 10, 2 ); function qode_display_user_last_login( $value, $column_name, $user_id ) { if ( $column_name !== 'last_login' ) { return $value; } $last_login_timestamp = get_user_meta( $user_id, 'last_login', true ); if ( ! $last_login_timestamp ) { return '/'; } return date( get_option('date_format') . ' ' . get_option('time_format'), (int) $last_login_timestamp ); } add_filter( 'manage_users_custom_column', 'qode_display_user_last_login' , 10, 3 );
Bu kodlama parçacığı, karşılık gelen eylem ve filtre kancalarına bağlı üç ayrı işlevden oluştuğu için önceki ikisinden daha karmaşıktır. Bu yüzden kodu düzgün bir şekilde detaylandırmak için, işlevleri birer birer açıklamaya çalışacağız.
İlk işlev qode_add_user_last_login() olarak adlandırılır ve Kullanıcılar > Tüm Kullanıcılar ekranına yeni bir sütun ekler. Bu yeni sütun, bir foreach döngüsü kullanılarak eklenen “Son oturum açma” olarak adlandırılır. Elbette, kodun düzgün çalışması için, fonksiyonlarımızı uygun bir kancaya bağlamamız gerekir. Bu durumda, bu, Manage_users_columns filtre kancasıydı. Bu kanca, belirli bir ekrandaki liste tablosu için başlık listesini filtreleyen, daha büyük, dinamik bir filtre kancası olan Manage_{$screen->id}_columns’ın bir parçasıdır.