$atts = shortcode_atts( array(
'path' => 'https://s.w.org/about/images/logos/wordpress-logo-simplified-rgb.png'
), $atts);
上記はショートコードの一部です。 Wordpressのテキストエディタでは、このショートコードは次のように生成されます。→
[theimg path=""]
逆カンマはこの画像のURLを持っている必要があります→
[theimg path = "https://geordiebiker.files.wordpress.com/2011/10/audrey-marnay-longchamp-commando-drive-side.jpg"]
テキストエディタのビジュアルモードに入っていて、それらのカンマに画像のURLを入れると、URLではなく実際に画像が引き出されます。これを説明するために gifを実行しました 。
私はこのようなesc_urlなどのようなサニタイズが欠けていると思いますが、私は正確な修正を知りません。
更新:ショートコードにURLだけを入れると、エディタは<img src="">
タグを追加しますか?
P.→2MBを超えているため、ここで画像をアップロードできません。
$output = '<div class="someclasss">';
$output .= '<img class="someclass1" src="'.$atts['simg'].'" alt="' .$caption. '" >';
$output .= '<i class="fa fa-expand" aria-hidden="true"></i>';
$output .= '</div>';
return $output;
上記の方法で、出力はブラウザに表示されます。
最後に、ブラウザでは、このように表示されます。
<img src="<img src="http://www.qygjxz.com/data/out/84/6074239-free-image.jpg" />">
この部分のsrc="'.$atts['path'].'"
でそれを確実にすることができる方法はありますか?
.$atts['simg'].
uRLを取得してすべてを削除するだけですか?
この動作は意図的なものであり、無効にすることができます。しかしそれは他の機能も壊すかもしれません。あなたが試すことができる、いくつかの回避策があります。
次のようにして、引数をショートコードに渡すことができます。
[theimg
path="https://s.w.org/about/images/logos/"
filename="wordpress-logo-simplified-rgb.png"
]
これによりエディタはURLを解析できなくなりますが、値を取得してPHPコードにまとめることができます。
preg_match()
を使うそれで、エディタはURLを完全なHTML画像に変換しますか?罰金、彼にやらせてください。エディタがフルイメージをショートコードに渡したら、PHPコードでpreg_match
を使用してURLを抽出できます。
preg_match( '@src="([^"]+)"@' , $img, $match );
これは$img
の内容を解析して<img>
タグのsrc
を返します。