Wordpress>

4 Cevap

Ben kimin amacı benim wordpress tema görüntüleri dizin içindeki klasörleri listelemek için bir işlevi var. Kullanıcı sitenin kök dizininde wordpress yüklü zaman harika çalışıyor. Kullanıcı kök altındaki bir klasöre wordpress yüklü Ancak, başarısız ...

$ Mydir = get_dirs ($ _SERVER ['DOCUMENT_ROOT'] '/ wp-content/themes/mytheme/images'.);

Wordpress gibi site.com / index.php olarak sitenin kök, doğrudan yüklenir Bu fonksiyon sürece çalışıyor

Kullanıcı sanal dizin kendi blogu yüklü Ancak, bu yol yöntem başarısız olur. Örnek: site.com / somedirectory / index.php

Birisi $ mydir yolunu belirlenmesinde daha iyi bir yöntem ile yardımcı olabilir misiniz?

Ben http adresi ile benim fonksiyonunu beslemek olabilir eğer süper basit olurdu, ama benim işlevi, bir sunucu dizini olarak görüntüleri dizinin yolunu gerektirir. Herkes yerine http yöntemi kullanılarak verilen bir dizin altında klasörleri bulmak için bir yol biliyor musun? Örneğin, ben benim temanın images dizininin bir referans alabilirsiniz ...

. $ Mydir = get_bloginfo ('url') / wp-content/themes/mytheme/images ';

Ancak, aşağıdaki işlev, bir URL almayacağız, ben ayrıştırmak istiyorum seçilen dizine bir fiziksel dosya yolu olmalıdır. Yani ya bir URL alan bir fonksiyon ile değiştirmeniz gerekiyor ya da fiziksel bir yolu, ya da belki bazı başka yollarla $ mydir işlevi dönüştürmek için bir yol bulmalıyız.

İşte dizini ayrıştırma ve bir dizi her klasör atamak için kullanıyorum fonksiyonudur.

function get_dirs($path = '.') 
{
$dirs = array();
try
{
	foreach (new DirectoryIterator($path) as $file) 
	{
		if ($file->isDir() && !$file->isDot()) 
		{
		$dirs[] = $file->getFilename();
		}
	}
} 
catch(Exception $e) 
{
	//log exception or process silently
	//just for test
	echo "There is a problem inside the get_dirs function";
}
return $dirs;
}

4 Cevap

Ben Wordpress burada kurdum fakat yok sizin tema klasöründe bulunan functions.php bu koymak ne olur?

function get_dir_path(){
    return dirname(__FILE__).'/images';
}

Daha sonra, yerine

$mydir = get_bloginfo('url').'/wp-content/themes/mytheme/images';

Sadece yapmak

$mydir = get_dir_path();

FILE yararlı bir "magical" constant olduğunu.

Kodeksine göre kullanılacak doğru işlevi:

get_template_directory() 

Yoksa uri isterseniz:

get_template_directory_uri()

Ben ne zaman kullanılabilir Wordpress fonksiyonlarını kullanmayı tercih. Bu durumda olurdu:

get_stylesheet_directory(). '/images';

Bu çocuk teması bile, seçili tema görüntüleri dizin yolunu dönecektir.

Function Reference/get stylesheet directory

Aradığınız şey olabilir: Template Tags/bloginfo « WordPress Codex