'http://'(または 'https://')を付けずにドメイン名(url)をエコーしようとしています。
私は以下を作成しました:
<?php $surl = bloginfo('url'); $findh = array( 'http://' ); $replace = ''; $outputh = str_replace( $findh, $replace, $surl ); echo $outputh; ?>
また、私が試したもう1つの(多くの)もの:
<?php $surl = bloginfo('url'); echo str_replace('http://', '', $surl); ?>
単純なタスクのように思えますが、ドメインがエコーされたときの出力にはまだ 'http://'が含まれます。ここや他のサイトへの他の投稿のレビューは役に立ちません。 Wordpressのベースファイル内の何かが干渉している可能性がありますが、これについてはよくわかりません。
ご意見をお寄せいただきありがとうございます。
bloginfo echosその結果、実際に値が返されていないので、これがあなたが "値を取得"してそれを操作しようとする試みが何も起こらない理由です。適切な値を取得したい場合は、代わりにget_bloginfo
を使用してください。
これにはcore PHP function parse_url();
を使うことができます。
例:
$url = 'https://www.google.com/';
$url_data = parse_url( $url );
$url_data['Host'] = explode( '.', $url_data['Host'] );
unset( $url_data['Host'][0] );
echo join( '.', $url_data['Host'] ); // outputs: google.com
このコードを使用して、http://を削除します
$str = 'http://www.google.com';
$str = preg_replace('#^https?://#', '', $str);
echo $str;
これを試してみるとあなたを助けるかもしれない、
$link = get_permalink();
$remove_http = '#^http(s)?://#';
$remove_www = '/^www\./';
$replace = '';
$new_link = preg_replace( $remove_http, $replace, $permalink );
$new_link = preg_replace( $remove_www, $replace, $new_link );
echo '<p>' . $new_link . '</p>';