トピック投稿者
Anonymous User 4963935
(@anonymized-4963935)
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php if (!is_front_page()) {echo '<div id="example"><span id="test">';} ?><?php wp_title('',true) ?><?php if (!is_front_page()) {echo '</span></div>';} ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>
追加質問1:
上記のようなコードでページタイトルが表示されるようになりましたが、<?php wp_title('',true) ?>
部分は必ず<?php ?>で別途囲まないとだめなんでしょうか(通常のPHPコードのようにピリオド( . )等で連結できないのでしょうか?)?
追加質問2:
また、上記のコードのブラウザーでの出力は以下のようになりますが、ページタイトルの左側にスペース(<span id="test">
と「ページタイトル」の間)が入ってしまいます。この問題(ページタイトルの左側にスペースが入ってしまう)をどのようにすれば回避できるでしょうか?
HTMLコードでの出力:
<div id="example"><span id="test"> ページタイトル</span></div>
よろしくお願いします。
トピック投稿者
Anonymous User 4963935
(@anonymized-4963935)
追加質問1の追記:
テンプレートタグを使用する場合独特のもっと効率の良いコード記載方法などありましたら、ご教授ください。
よろしくお願いします。
doganteさん、こんにちは。
当初の質問&追加質問1
もうすこしcodexを熟読するなどして、テンプレートタグの各パラメータの意味を理解してください。
wp_title('',false)
にすれば、最初のコードで表示されるはずです。
2つめのコードはif分岐の外になってしまっているので、front_pageであるなしにかかわらず表示されてしまっているはずですよ。
追加質問2
trim( wp_title( '',false ) )
で消えませんか?
トピック投稿者
Anonymous User 4963935
(@anonymized-4963935)
jim912さん
ご回答、ありがとうございました。
その1:
もうすこしcodexを熟読するなどして、テンプレートタグの各パラメータの意味を理解してください。
wp_title(”,false)
にすれば、最初のコードで表示されるはずです。
jim912さんのご指摘のようにwp_titleのパラメータを「true」から「flase」にすると私の最初の記述(ピリオド( . )で連結)で、ちゃんと動作しました。てっきり、–「true」=タイトルを表示する / 「flase」=タイトルを表示しない– だと思っていました。「flase」=タイトルを表示しないで変わりに値を返す–だったのですか。どおりで、get_wp_titleが存在しないはずですね。
その2:
2つめのコードはif分岐の外になってしまっているので、front_pageであるなしにかかわらず表示されてしまっているはずですよ。
いわれてみればそうなのですが、以下のコードでなぜか正しく動作しています(フロントページでは、wp_titleが表示されず、その他のページではちゃんと表示されています。)。ただし、jim912さんのおっしゃるとおり、記述的には正しくないですね。
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php if (!is_front_page()) {echo '<div id="example"><span id="test">';} ?><?php wp_title('',true) ?><?php if (!is_front_page()) {echo '</span></div>';} ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>
その3:
trim( wp_title( ”,false ) )
で消えませんか?
上記でページタイトルの左側のスペースが消せました。
このスレの論題はこれで解決しましたので、解決済みとさせていただきます。