相対パスにした場合。feed に影響でませんかね。
こんにちは
<img src="img/hogehoge.jpg">
相対リンクで書きたいという事ですよね。
あんまり難しく考えずに、
base要素を使えばいいんじゃないですか?
https://developer.mozilla.org/ja/docs/Web/HTML/Element/base
フィルタ使う場合だと、
add_action( 'wp_head', 'my_base_elements' );
function my_base_elements() {
$upload_dir = wp_upload_dir();
$upload_base_url= $upload_dir['baseurl'] . '/';// または、img までのbase url
$html = '<base href="%1$s" />';
printf( $html, $upload_base_url );
}
エディタでは、画像は表示されませんけど
年付ホルダ使っている場合は、wp_upload_dir()で、サブホルダーも取れるので、ケアしてください。
おすすめというわけではありませんが、どうしてもという場合は
モデレーター
まーちゅう
(@rocketmartue)
functions.phpに追記した部分を一旦削除して
<img src="img/hogehoge.jpg">
を
<img src="<?php echo esc_url( get_template_directory_uri()); ?>/img/hogehoge.jpg">
にすれば、ローカル、本番サーバー関係なく画像が表示されますよ。
固定ページからの画像パスを設定したいのですが、固定ページの編集画面ではRocketMartueさんの教えてくれた<?php ・・・・はつかえないとおもいますので、functions.phpに
下記のように書けばパスをパスを書き出してくれるというブログを見てそのように書きました。
//固定ページ画像
function replaceImagePath($arg) {
$content = str_replace('"img/', '"' . get_bloginfo('stylesheet_directory') . '/img/', $arg);
return $content;
}
add_action('the_content', 'replaceImagePath');
ですが一向にパスが書き出されず、画像も表示されません。base要素も同じくやってみましたがうまく行かずです。上記のコードを使う以前になにかまちがっているのでしょうか・・・
モデレーター
まーちゅう
(@rocketmartue)
すみません。テンプレートファイルに直接記入しているのかと勘違いしていました。
投稿画面では、ショートコードを使うなどしないとPHPは使えませんね。
Twenty Sixteenのfunctions.phpに
function replaceImagePath($arg) {
$content = str_replace('"img/', '"' . get_bloginfo('template_directory') . '/img/', $arg);
return $content;
}
add_action('the_content', 'replaceImagePath');
のコードを記入。
テーマフォルダ内にimgフォルダを作成して、hogehoge.jpgをアップロード。
固定ページに<img src="img/hogehoge.jpg">を記入したところ、画像が表示されました。
ちなみに
<img src="/wp-content/themes/twentysixteen/img/hogehoge.jpg">
の場合は、functions.phpに上記のコードを記入しても記入しなくても画像が表示されます。
karatemanさんのご利用のテーマは何ですか?
根本的な開発手順の話となりますが、ローカルでも本番と同じドメイン名・構成でアクセスできる設定にしてしまえば、余計な細工をする必要はなくなります。
xampp os x VirtualHost hosts で検索すれば、設定方法が見つかると思いますので参考にしてみてください。