WordPress büyük nimet!
WordPress temanızda sadece functions.php dosyasını düzenleyerek her gönderinizin sonuna google plus +1 butonu ekleyebilirsiniz, bunu yapmak için;
functions.php dosyanızı açarak içerisine öncelikle google+ aktivitelerini kullanabilmek için gerekli js kütüphanesini eklemek için;
add_action ('wp_enqueue_scripts','WordPress_Gplus_Script');
function WordPress_Gplus_Script() {
wp_enqueue_script('google-plusone', 'https://apis.google.com/js/plusone.js', array(), null);
}
bu işlemin ardından wordpress bizim yerimize script dosyalarının tanımlandığı alana google plus apisinin js dosyasını ekleyecektir.
ekleme işlemini tamamladıktan sonra yine functions.php dosyası içerisine her içerik olayında tetiklenmek üzere bir fonksiyon tanımlaması yapıyoruz;
add_filter('the_content', 'WPTetikleBebek');
function WPTetikleBebek($icerink) {
$icerink = $icerink.'<div><g:plusone size="tall" href="'.get_permalink().'"></g:plusone></div>'; return $icerink;
}
the_content gibi olaylarda giren argümanları return ile geri göndermezsek, olay sonunda içerik boş dönecektir.
son kod kümesinide functions.php dosyasına eklemişsek, her hangi bir yazımızın içerisine girdiğimizde bahsi geçen butonun yazının sonuna eklendiğini göreceksiniz.
neşeli bloglar
Php her yeni sürümde eskilere dair, safraları atarak kendini yeni nesil teknolojilere hazırlıyor.
Php 5.4 ile gelen özellikler de buna güzel bir örnek.
işte öne çıkan bazı güzellikler.
class Sinifim
{
function __construct($isim)
{
$this->isim= $isim;
}
public function MerbaCanim()
{
return "Merba " . $this->isim . " Nassın ?";
}
}
// Eskiden
$sinifim = new Sinifim("Abdush");
echo $sinifim->MerbaCanim();
// Php 5.4 ile ise
echo (new Sinifim("Abdush"))->MerbaCanim();
//Eskiden
$a = array("1","2","3");
print_r($a);
//Php 5.4 ile bereber
$a = [1, 2, 3];
print_r($a);
function ArrayVerGulum(){
return ["isim"=>"kerim","soyisim"=>"cabbar"];
}
//Eskiden
$isimler = ArrayVerGulum();
echo $isimler["isim"];
//Php 5.4 ile birlikte
echo ArrayVerGulum()["isim"];
function deneme(callable $func){
$func();
}
$fonk = [new Sinifim("abdush"), 'MerbaCanim'];
echo $fonk();
şimdilik bu 5 (beş) özellik yeterli, sonraki günler, diğer özellikleri de eklerim.
Mobil teknolojilerinin yükselişi almış başını gidiyor, Sitemize gelen ziyaretçilerin cep telefonu veya tablet ile mi geldiklerini tespit etmek için javascript yerine php kullanmak istersek,
$_SERVER evrensel değişkeni içerisinde bulunan HTTP_USER_AGENT bölümü yardımımıza koşacaktır.
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
eğer bu kodun olduğu sayfaya bir android cihaz ile bağlanırsanız karşınıza
Mozilla/5.0 (Linux; U; Android 2.1-update1; en-in; HTC_Wildfire_A3333 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari
metni gelecektir.
Gördüğünüz gibi, HTTP_USER_AGENT ile ziyaretçinin işletim sistemi ve tarayıcısına dair bir çok bilgiye ulaşabiliyoruz,
HTTP_USER_AGENT içeriğini strpos fonksiyonu ile aratarak, anahtar kelimelerini bildiğimiz tarayıcı ve sistemlere göre farklı sayfa yüklemesi yaptırabiliriz,
<?php
$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
if ($iphone || $android || $palmpre || $ipod || $berry == true)
{
header('Location: http://mobile.siteniz.com/');
}
?>
yukarıdaki örnekte bilinen herhangi bir mobil cihazdan sayfa yüklendiğinde otomatik olarak mobile.siteniz.com adresine header ile yönlendirilmesi anlatılıyor.
Php ile metinlerin sağında veya solunda bulunan boşlukları silmenin bir çok yolu vardır.
bunlardan bazıları :
trim() fonksiyonu :
Bu fonksiyon verilen metnin solunda ve sağında bulunan fazlalık boşlukları ve özel kodları temizler.
$metin = " Selami Şahin ";
echo "|".$metin."|\n";
$metin = trim($metin);
echo "|".$metin."|";
Örnekte verilen kodları çalıştırdığınızda göreceğiniz gibi, trim fonksiyonu sonrası boşluklar silinecektir.
trim fonksiyonu sadece boşlukları değil bununla beraber
Trim ile aynı işi yapar ancak verilen metnin sadece sol tarafını temizler.
$metin = " selami şahin ";
echo "|".$metin."|";
$metin = ltrim($metin);
echo "|".$metin."|";
$metin = " selami şahin ";
echo "|".$metin."|";
$metin = rtrim($metin);
echo "|".$metin."|";
örnek çalıştırıldığında sağ taraftaki boşlukların silindiği görülecektir.
Php ile geliştirilen WordPress’in esen yapısı sayesinde hemen hemen her yerine kolayca müdahale edip, wordpress’i şekillendirmek mümkün.
Artık bir çok site yada internet projesi head tagları arasında meta tag ile yada <!– html comment etiketi ile sadece ilgili kişilerin görebileceği imzalar bırakmakta, hatta bu şekilde yapılan reklam yöntemleri bile var.
Bu yazımda wordpress’in Wp_head olayı ile head etiketleri içerisinde nasıl yazı yazdırabileceğimizi anlatmaya çalışacağım.
WordPress’e diler eklenti ile dilersek de tema klasöründe oluşturacağımız functions.php dosyası ile müdahale edebiliriz. ben ise tema klasörüne oluşturulmuş bir functions.php dosyası üzerinden anlatacağım,
tema klasörü içerisinde bulunan functions.php dosyası içerisine şu kodları ekliyorum
add_action("wp_head", "iki_head_bir_imza");
function iki_head_bir_imza() {
if(is_singular()){
echo "<meta name="copyright" content="© Me, 2011">";
}
}
yukardaki kodları ekledikten sonra konu detayında copyright özellik değerli meta etiketi otomatik olarak eklenecektir.
Eğer bir probleminizi regex ile çözecekseniz artık iki tane probleminiz vardır. Diye çok hoşuma giden bir söz var. Düzenli ifadeler şüphesiz bir programcının hayatını kolaylaştıran yöntemlerin başında gelmektedir. Düzenli ifadeler, belli metinler içerisinden bilgi çekmek yada kullanıcılardan gelen içeriklerin kontrolü için kullanılabilinir. Unutmayalım ki, kullanıcıdan gelen verilere asla güvenilmez.
Bu yazımda size, mutlaka bir gün lazım olabilecek 7 farklı regex örneğini vereceğim.
1. Dosya ve Uzantı Kontrolü
function validate_filename(str)
{
str = str.replace(/^\s|\s$/g, ""); //trims string
return /^([\w-_]+)\.(asp|html|htm|shtml|php|txt)$/.test(str)
}
2. Email Adresi Kontrolü
function validate_email(str) {
return /^([\w-_.]+)(\.[\w-_.]+)*@([\w\-]+)(\.[\w]{2,7})(\.[a-z]{2})?$/i.test(str);
}
3. Rakamların (numaraların) Geçerliliğini kontrol etmek
function validateNumeric( str ) {
return objRegExp = /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/.test(str);
}
4. Tarih Kontrolü
function validate_date(str) {
return /(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:19|20\d{2})/.test(str);
}
5. Saat Kontrolü
function validate_time(str) {
return /^([1-9]|1[0-2]):[0-5]\d(:[0-5]\d(\.\d{1,3})?)?$/.test(str);
}
6. İp Adresi Kontrolü
function validate_ip(str) {
return /^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/.test(str);
}
7. Telefon Numarası Kontrolü (258-999999)
function validate_zip(str) {
return /(^\d{5}$)|(^\d{3}-\d{7}$)/.test(str);
}
az önce yazdığım, php ile internet explorer 6 tesptine ek olarak ipad ile gelen kullanıcıları php ile tespit etmek istersek bu fonksiyon yardımcı olacaktır.
function is_ipad(){
return strstr($_SERVER['HTTP_USER_AGENT'], 'iPad');
}
Normal şartlarda Java Script ile rahatça tespit edebileceğiniz internet explorer 6′yı php ile tespit etmek isterseniz aşağıdaki kod işinize yarayacaktır.
<?php
function is_ie6(){
return strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.') !== FALSE;
}
Kullanım için ise ;
if (is_ie6()){
echo "Hangi mağarada yaşıyorsun ?";
die();}
yeterli olacaktır.
Eğer php ile kullanıcı adını bildiğiniz bir twitter kullanıcısının ( yada kendinizin) takipçi sayısını öğrenmek isterseniz. Aşağıda paylaşacağım basit kod işinizi görecektir.
function takipCileriGetir($kullanici_adi){
$xml=file_get_contents('http://twitter.com/users/show.xml?screen_name='.$kullanici_adi);
if (preg_match('/followers_count>(.*)</Usi',$xml,$uydu)!=0) {
$tw['say'] = $uydu[1];
}
return $tw['say'];
}
Kullanım şekli : ,
<?php
$nb = takipCileriGetir('aligundogdu');
echo "Twitter üzerinde beni toplam ".$nb." kişi takip ediyor !";
Php 4.0.2 ile birlikte fonksiyon ailesine katılan ve hala ailede yerini koruyan bir fonksiyon olan wordwrap fonksiyonu temel olarak
uzun bir metni istediğimiz karakter sayısından sonra anlamlı şekile parçalar.
Örnek :
<?php $metin = "Mauris dolor mauris, ultricies sit amet tempor sed, pharetra nec ligula. Integer porta sapien est. Nunc sem dolor, iaculis et tempor ac, pharetra ac est. Aenean euismod vulputate tempus. Ut eget metus dui. Quisque vel leo turpis, at aliquet purus. Fusce fringilla nulla sit amet sapien sagittis eget bibendum leo rhoncus. Etiam tincidunt sapien semper augue varius aliquam. Etiam turpis eros, auctor at mollis sed, lacinia ut metus."; echo wordwrap($metin,50,"\n"); echo "\n";
örnek çalıştırıldığında $metin değişkeni içerisindeki metin, 50 karakterlik satırlar ile ekrana sonlarına “\n” işareti eklenerek ekrana basılacaktır.
Örnek çıktısı :
Mauris dolor mauris, ultricies sit amet tempor sed, pharetra nec ligula. Integer porta sapien est. Nunc sem dolor, iaculis et tempor ac, pharetra ac est. Aenean euismod vulputate tempus. Ut eget metus dui. Quisque vel leo turpis, at aliquet purus. Fusce fringilla nulla sit amet sapien sagittis eget bibendum leo rhoncus. Etiam tincidunt sapien semper augue varius aliquam. Etiam turpis eros, auctor at mollis sed, lacinia ut metus.
Komut kullanım şekli,
wordwrap($kaynak_metin,$karakter_sayisi,$satir_sonuna_yazilacak_iz);
$kaynak_metin : Parçalanmasını istediğimiz metin,
$karakter_sayisi: 1 parça içerisinde bulunması gereken maximum karakter sayısı,
$satir_sonuna_yazilacak_iz : Her bir parçanın sonuna eklenmesini istediğimiz karakter, “\n”, “<br/>”,”</td><td>” gibi.
php mail fonksiyonu ile düz metin göndermek istediğinizde her bir satırda en fazla 40 karakter zorunluluğu vardır, wordwrap fonksiyonu ile mail metninizi parçalayabilirsiniz, yada blog ve benzeri sistemlerde satırları daha güzel göstermek için kullanabilirsiniz.