サポート » 使い方全般 » メディアのサイズを「フルサイズ」だけでなく「大」と「中」も加えるためにはどうすればよろしいでしょうか?

  • 解決済 echizenya

    (@echizenya)


    いつもお世話になっております。
    下記の質問についてご存知の方がいらっしゃいましたら、ご教示を願います。

    【質問の主旨】

    個人のブログサイトにおいて、
    記事の投稿→メディアの挿入→添付ファイルの表示設定→サイズを確認すると、「フルサイズ」だけで「大」と「中」が
    表示されません。サイズの「大」と「中」を表示させるためにはどうすればよろしいでしょうか?

    【質問の補足】

    1.
    WordPressの実行環境は以下の通りです。
    – サーバー→「さくらのVPS」
    – OS → CentOS7
    -PHP → PHP7.0
    -MySQL → MySQL5.6

    2.
    PHP7.0をremiリポジトリでインストールするときに、PHPの画像を司るphp-gdをインストールすることを忘れていました。

    $ rpm -q php-gd
    パッケージ php-gd はインストールされていません。

    3.
    従って、php-gdを下記のコマンドでインストールしました。

    # yum install --enablerepo=remi,remi-php70 php-gd

    結果は以下の通りです。

    
    ...
    インストール:
      php-gd.x86_64 0:7.0.24-1.el7.remi                                                                  
    
    依存性関連をインストールしました:
      gd-last.x86_64 0:2.2.5-1.el7.remi   libXpm.x86_64 0:3.5.12-1.el7   libwebp.x86_64 0:0.3.0-7.el7  
    
    依存性を更新しました:
      php.x86_64 0:7.0.24-1.el7.remi                   php-cli.x86_64 0:7.0.24-1.el7.remi               
      php-common.x86_64 0:7.0.24-1.el7.remi            php-devel.x86_64 0:7.0.24-1.el7.remi             
      php-json.x86_64 0:7.0.24-1.el7.remi              php-mbstring.x86_64 0:7.0.24-1.el7.remi          
      php-mysqlnd.x86_64 0:7.0.24-1.el7.remi           php-pdo.x86_64 0:7.0.24-1.el7.remi               
      php-xml.x86_64 0:7.0.24-1.el7.remi              
    
    完了しました!

    ですが、やはり画像のサイズは「フルサイズ」しか表示されません。

    4.
    ダッシュボードの設定→メディアでは、

    中サイズ 400 × 400
    大サイズ 546 × 546

    に設定して、変更を保存しています。

    5.
    関連質問 → PHP5.4のphp-gdを削除する方法を教えてください

    以上、よろしくお願い申し上げます。

    ヘルプの必要なページ: [リンクを見るにはログイン]

15件の返信を表示中 - 1 - 15件目 (全17件中)
  • こんにちは

    フィルターを使ってみてください。

    
    add_filter('image_size_names_choose', 'my_media_insert_all_sizes');
    
    function my_media_insert_all_sizes( $default_sizes ){
    
    	$sizes = get_intermediate_image_sizes();
    
    	foreach( $sizes as $size ) {
    
    		if( ! array_key_exists( $size, $default_sizes ) ) {
    
    			$default_sizes[ $size ] = ucfirst($size);
    		}
    
    	}
        return $default_sizes;
    }
    

    こんにちは

    サムネイルは、画像のアップロード時に生成されます。
    既存の画像のサムネイルを生成するには、Regenerate Thumbnails プラグイン等を使用すれば再生成することができます。

    @nobita さん。
    コメントありがとうございます!

    アドバイスをいただいた、フィルターをfunctions.phpにコピペしてみました。
    ですが、画像サイズは「フルサイズ」しか表示されません。「大」と「中」については表示されません。

    なので、デバッグで確認するために、

    $add_filter('image_size_names_choose', 'my_media_insert_all_sizes');
    
    function my_media_insert_all_sizes( $default_sizes ){
    
    	$sizes = get_intermediate_image_sizes();
    	var_dump($sizes);
    	foreach( $sizes as $size ) {
    
    		if( ! array_key_exists( $size, $default_sizes ) ) {
    
    			$default_sizes[ $size ] = ucfirst($size);
    		}
    
    	}
        return $default_sizes;
    }

    としました。

    すると、今度は投稿記事の画面でメディアを追加をするために
    メディア挿入の画面に遷移しようとすると、これまでアップロードした画像が表示されなくなり、
    ずっとリロードをしているような状態になりました。var_dumpを除くと元どおりになります。

    差し支えなければ、どこでデバッグをすれば良いのかご教示いただければ幸いです。

    @ishitaka さん。
    コメントありがとうございます!
    Regenerate Thumbnailsの存在について初めて知りました。
    ただ、今回は画像サイズで「大」と「中」のサイズを作成したいと考えています。
    Regenerate Thumbnailsの機能をよく確認して、使いどころが発生したときに
    インストール・有効化いたします。アドバイスありがとうございます。

    「サムネイル」と書きましたが、別サイズ(「大」「中」)のことです・・・。
    あれっ、私なんか勘違いしている?勘違いしていたらすみません。スルーしてください。

    関数内でdumpしないで、
    functions.phpで、 get_intermediate_image_sizes()を書いてください。

    
    $sizes = get_intermediate_image_sizes();
    	var_dump($sizes);
    

    http://www.tenman.info/wp3/manualraindrops/files/shot-media-size.png

    モジュールのインストール、アンインストールについて正しく動作が完了しているのでしょうか。
    grep gd などで関連付けはご確認されているでしょうか。
    パネル上では完了とでていても実際にはエラーで終わっており表示上だけ「インストール(という作業だけは)完了しました」となっている可能性はないでしょうか。
    yum でEオプションでもノード削除でも消せないとなるとインスタンスが作成されていないのではないかと思います。
    yumのListにインストール履歴はあるでしょうか。
    履歴があればリポジトリ依存のプロファイルなどにコピーされてしまっている等ないでしょうか。
    gdを利用なされるのにまずインストールの状況と状態のご確認、GD自体の稼働状態もあわせて確認いただけると幸いです。
    インストーラー的には「ない」と出ているようなのでインストールされていないまたはただのコピーファイルがディレクトリにあるかではと思いますがいかがでしょうか。
    インストーラは終わっているのに、という問題についてはままあることなのでエラーログやパッケージの展開を確認されて正しく完了しているかご確認されてみてはいかがでしょうか。
    環境設定については限りがないので専門の方と多くを取り組まれることがこちらでのやりとりより良いかと思います。
    同じ状況の経験者さまがいらっしゃいましたら、お目にとどまれることをお祈りいたしております。

    サイズ違いの画像が作成されない件について画像加工用のライブラリがPHPにおいて機能していない問題の解決について、 @ishitaka さまのおすすめされているものを含め、フォルダの権限、機能設定のご確認などいただいたうえで先のGDインストールがはかどらない場合、レンタルサーバーにOS設定選択をなされたのであれば準備環境にGDI+がご利用になれる可能性もあると思うので、環境に適合したサムネイル作成プラグインなどの導入も検討されてみてはいかがでしょうか。
    WebサーバーサービスやJavaでも画像は加工できますので、もしかすると独立して稼働するプラグインがあるかもしれません。
    ご検討くださいませ。

    • この返信は1 年、 11 ヶ月前に  msio さんが編集しました。理由: 日本語へんでした。

    差し支えなければ、どこでデバッグをすれば良いのかご教示いただければ幸いです。

    var_dumpで出力される場所が、javascriptで表示しているメディア一覧に影響を与えて、壊れているのだと思います。ちょいちょいありますよね

    なので、直接 echo させないようにすればいいと思います。

    
    $add_filter('image_size_names_choose', 'my_media_insert_all_sizes');
    
    function my_media_insert_all_sizes( $default_sizes ){
    
    	$sizes = get_intermediate_image_sizes();
    //例えば
    update_option('my_dump_value',var_export($sizes, true) );
    	//var_dump($sizes);
    	foreach( $sizes as $size ) {
    
    		if( ! array_key_exists( $size, $default_sizes ) ) {
    
    			$default_sizes[ $size ] = ucfirst($size);
    		}
    
    	}
        return $default_sizes;
    }
    
    echo get_option( 'my_dump_value' );
    

    終わったら、

    
    delete_option( 'my_dump_value' );
    

    var_export()は、第2引数にtrueを与えると、結果をリターンします。便利ですよ

    
    $add_filter('image_size_names_choose',...
    

    $つけたら動かないですよー

    • この返信は1 年、 11 ヶ月前に  nobita さんが編集しました。
    • この返信は1 年、 11 ヶ月前に  nobita さんが編集しました。
    • この返信は1 年、 11 ヶ月前に  nobita さんが編集しました。
    • この返信は1 年、 11 ヶ月前に  nobita さんが編集しました。

    @msio さん
    コメントありがとうございます。

    gdを利用なされるのにまずインストールの状況と状態のご確認、GD自体の稼働状態もあわせて確認いただけると幸いです。

    https://goo.gl/KBEYxc
    上記のURL(Google ドキュメントシート)の1.pngをご覧いただければと思います。
    PHP7.0のphp-gdがインストールされていることが分かります。ただこれが稼働しているかどうかまでは、分かりません。

    インストーラは終わっているのに、という問題についてはままあることなのでエラーログ

    # vi /var/log/httpd/error_log
    を確認したところ、php-gd-7.0.24-1.el7.remi.x86_64をインストール日時に
    それらしきエラーがあった様子は伺えませんでした。

    >パッケージの展開を確認されて正しく完了しているかご確認されてみてはいかがでしょうか。

    # rpm -q php-gd
    php-gd-7.0.24-1.el7.remi.x86_64

    となりますので、パッケージのインストールそのものは済んでいると思います。

    結局、@msio さんからご指摘いただいた点で、はっきりしないのはPHP7.0のphp-gdが正しく稼働しているかどうかです。フィルターを使うことが出来ないようであれば、Regenerate Thumbnails プラグインを使うことも視野に入れます。

    • この返信は1 年、 11 ヶ月前に  echizenya さんが編集しました。

    @ishitaka さん。
    コメントありがとうございます。

    「サムネイル」と書きましたが、別サイズ(「大」「中」)のことです・・・。

    こちらこそ、解釈が届かず恐れ入ります。
    上記と下記のコメントでも述べていますが、今のところフィルターがまだ使えるかどうか分からない状況です。
    フィルターが使えない場合は、Regenerate Thumbnails プラグインを使うようにします。

    @nobita さん。
    デバッグに関する各種アドバイスありがとうございます。
    再三の質問で恐れ入ります。もしよろしければ、特に2.についてコメントをいただければ幸いです。

    1.
    https://goo.gl/KBEYxc (Google ドキュメントシート)で、
    get_intermediate_image_sizesと$sizesのデバッグの結果を示しています。
    両者ともに同じような結果が返ってきました

    – 2.png

    var_dump(get_intermediate_image_sizes());

    functions.phpの中、関数の外でデバッグした結果です。

    – 3.png

    update_option('my_dump_value',var_export($sizes, true) );
    ...
    echo get_option( 'my_dump_value' );

    いただいた直近のコメントでデバッグした結果です。

    2.
    $sizesの中身が分かりましたので、$default_sizesのデバッグをしました。
    するとこちらはNULLが表示されるかもしくは、何も表示されないことが分かりました。
    $default_sizesをスコープの外で使っていたり、変数が仮引数だったりしてそもそも値が存在しないということは
    何となく分かります。

    では仮引数に相当する実引数はどのタイミングで入るのでしょうか?
    widget_tag_cloud_argsフックで何らかの値が自動的に入るのでしょうか?

    – 4.png

    var_dump($default_sizes);

    functions.phpの中、関数の外でデバッグした結果です。

    – 5.png

    update_option('my_dump_value',var_export($default_sizes, true) );
    ...
    echo get_option( 'my_dump_value' );

    いただいた直近のコメントで教えていただいたデバッグを実行した結果です。

    以上、お手数をおかけして誠に恐れ入ります。よろしくお願い申し上げます。

    7の導入になられていたのですね。
    結果を拝見しましてインストールはなされていると思います。
    次はPHPからそのモジュールが参照できているか、確認いただければと思います。
    いずれも動作を確認できれば次はサーバーのセッティング、書き込み顕現やディレクトリの設定などになるかと思います。
    テストコードがあればなにより早いかと思うのですが持ち合わせがなく私が申し上げることができるのはここまでだと思います、
    陰ながら解決をお祈りいたしております。

    こんにちは

    GDがちゃんと動いているかどうかはphpinfoを確認すれば分かります。

    また、/var/log/httpd/error_logはgdのインストール自体とは無関係です。

    yumでインストール時にエラーがファイル出力されるようなものは、コマンド実行時にエラーが表示されていたと思います。

    @munyagu さん。
    コメントありがとうございます。

    >GDがちゃんと動いているかどうかはphpinfoを確認すれば分かります。

    https://goo.gl/KBEYxc で添付した6.pngの通り
    GDは正常に動いているように思います。

    アドバイス助かります!またエラーログに関しても今後の参考にします。

15件の返信を表示中 - 1 - 15件目 (全17件中)
  • トピック「メディアのサイズを「フルサイズ」だけでなく「大」と「中」も加えるためにはどうすればよろしいでしょうか?」には新たに返信することはできません。