こんにちは
フィルターを使ってみてください。
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でも画像は加工できますので、もしかすると独立して稼働するプラグインがあるかもしれません。
ご検討くださいませ。
-
この返信は6年、 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',...
$つけたら動かないですよー
@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 プラグインを使うことも視野に入れます。
@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は正常に動いているように思います。
アドバイス助かります!またエラーログに関しても今後の参考にします。