iamgraeme
iamgraeme

Reputation: 450

WordPress php glob(); not working?

I have created a function in WordPress where I wish to obtain all the images within a given directory, for which I am using the PHP glob function, for some reason I cannot get this to work, is the glob() function disabled for use within WordPress?

The Code that Doesn't Work...

function getAccreditaionLogos(){

    define('ACCREDPATH', get_stylesheet_directory_uri() . '/img/accreditations/');

    $images = glob(ACCREDPATH . '*.png');
    foreach($images as $key => $img):
        $get_icons = '<li><img src="'.$img.'" /></li>';
        echo $get_icons;
    endforeach;
}

Upvotes: 2

Views: 2687

Answers (1)

Marvin Rabe
Marvin Rabe

Reputation: 4241

The function get_stylesheet_directory_uri() gives you a web url ( http://… ) . You have to use an absolute system path. You can get it by using the get_theme_root() function instead.

Your function should look like this:

function getAccreditaionLogos(){

    define('ACCREDPATH', get_theme_root() . '/img/accreditations/');

    $images = glob(ACCREDPATH . '*.png');
    foreach($images as $key => $img):
        $get_icons = '<li><img src="'.$img.'" /></li>';
        echo $get_icons;
    endforeach;
}

More details of this function in the Wordpress Codex.

Upvotes: 6

Related Questions