WordPress フォルダー・ファイル系の関数 is_dir や opendir や exif_imagetype で Warning エラー

公開日: : PHP, WordPress

WordPress Warning エラー

WordPress の管理画面でフォルダーの中身を読み込む関数 opendir でエラー

WordPress の管理画面で、opendir を使って、images フォルダー中の画像ファイルを読み込もうと思いました。

プラグイン制作中だったので、以下のようにしたのですが、

$dir = plugins_url( 'images/', __FILE__ );
if (is_dir($dir)) {
  if ($dh = opendir($dir)) {
      while (($file = readdir($dh)) !== false) {
	echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
      }
      closedir($dh);
  }
}

Warning エラーが出ました。

is_dir の時点でもうエラーになっています。

$dir を確認しようと、echo してみました。

echo $dir;

http://ドメイン名/wp/wp-content/plugins/プラグインフォルダー/images/

フルパスで合ってるはず・・・

そういえば、管理画面のパスを見てみると、

http://ドメイン名/wp/wp-admin/

となっています。

wp-admin の中にいるわけなので、結局以下のように、相対パスにしたらOKでした。

$dir = '../wp-content/plugins/プラグインフォルダー/images/';

WordPress の管理画面で画像かどうかの関数 exif_imagetype でエラー

次に画像かどうかの判断で exif_imagetype を使用しようと思ったら、

また Warning エラーになりました。

if (is_dir($dir)) {
    while (($file = readdir($dh)) !== false) {
        if(exif_imagetype($file))echo $file;
    }
    closedir($dh);
}

結局以下のように、拡張子で判別しました。

if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
         $file_arr = explode('.', $file);
         if($file_arr[1] && ($file_arr[1]=='jpg'||$file_arr[1]=='gif'
                ||$file_arr[1]=='png'||$file_arr[1]=='jpeg'))echo $file;
	}
    closedir($dh);
    }
}

exif_imagetype 関数を使えるようにする

php.ini の設定を変更出来る場合は、以下の部分を変更すると、exif_imagetype 関数を使えるようになるらしいです。

php.ini ファイル 変更前

;extension=php_mbstring.dll
;extension=php_exif.dll

php.ini ファイル 変更後

extension=php_mbstring.dll
extension=php_exif.dll

今回は拡張子判断で対応したので、実際試してはいません。

関連記事

WordPress PHP

WordPress の PHP をちょっと見てみよう Ⅰ

WordPress には、たくさんのファイルが入っています。 ここではテーマ内ではなく、トップ

記事を読む

レンタルサーバでWordPressを設置してみよう!

WordPress.com 内に、ブラウザだけで無料でサイトを作成出来きるサービスもありますが、Wo

記事を読む

Wordpress 自作フォーム (チェックボックスなど)

WordPress 自作フォーム その3(チェックボックスなど)

以前、WordPress 自作フォーム その1の記事で Wordpress で自作フォームを作ってみ

記事を読む

WordPress の PHP をちょっと見てみよう Ⅲ

WordPress の PHP をちょっと見てみよう Ⅲ

前記事の続きで、wp-settings.php の91行目あたりから見ていきます。 次は、wp

記事を読む

wordpress カスタム投稿で 2ページ目以降が404

wordpress カスタム投稿で 2ページ目以降が404になってしまう

wordpress のカスタム投稿で、ニュースのページを作っていました。 ニュース一覧で、ペー

記事を読む

Wordpress 自作フォーム

WordPress 自作フォーム その1(サンプルと設置)

Wordpress でプラグインを使わずにフォームをやってみます。 簡単に名前、メールアドレス、メ

記事を読む

WordPress Twenty Seventeen function.php

WordPress twentyseventeen の function.php を見る – その2

前回の続きです。 次のスターターコンテンツは、今回のシンプルテンプレートには不要ですが、よくわ

記事を読む

wordpress カスタム投稿を一覧(ループ)で表示する

wordpress カスタム投稿を一覧(ループ)で表示する

カスタム投稿を一覧で表示する方法がいろいろあります。 query_posts 関数が非推奨になって

記事を読む

MVCの典型的な相関図

PHPフレームワークについて

フレームワークとは? 開発する際に頻繁に必要とされる汎用的な機能をまとめて提供している、アプリケー

記事を読む

WordPress レスポンシブ テンプレート

WordPress レスポンシブ テンプレート の メニューやブログの設置

前回の 「WordPress レスポンシブ テンプレートコーポレート用(シンプル・カスタマイズ用)ダ

記事を読む

PHP WordPress

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Javascript let const アロー関数 クラス
Javascript ES5,6 の新機能(letとconst,アロー関数,クラスなど)

ESとはECMASCriptの略で、ECMA という国際的な標準化機関

Strict モード JavaScript
Javascript Strictモード “use strict”;

Strict モード(厳格モード) Strict モードとは、ECM

CodeIgniter インストール
Codeigniter インストールとバージョンアップ2→3 PHP 5→7 メモ

Codeigniter インストール Codeigniter をサイ

wordpress カスタム投稿を一覧(ループ)で表示する
wordpress カスタム投稿を一覧(ループ)で表示する

カスタム投稿を一覧で表示する方法がいろいろあります。 query_p

wordpress カスタム投稿で 2ページ目以降が404
wordpress カスタム投稿で 2ページ目以降が404になってしまう

wordpress のカスタム投稿で、ニュースのページを作っていました

→もっと見る

    • 202007
      Mon Tue Wed Thu Fri Sat Sun
      12345
      6789101112
      13141516171819
      20212223242526
      2728293031
    にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ PHPへ にほんブログ村 IT技術ブログ WordPressへ
    にほんブログ村 FC2 Blog Ranking
    PAGE TOP ↑