• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:echoの出力がうまくできない)

echoの出力がうまくできない

このQ&Aのポイント
  • WordPressでのPHPカスタマイズ時にechoの出力がうまくできず、リンクが張られない状態になってしまいます。
  • the_title()などの関数の戻り値を展開して<a>タグを作りたいが、リンクが張られず文字列が表示される。
  • 変数にthe_title()の戻り値を代入すると、echoがされた状態になり、タイトルが表示されてしまう。プログラミング初心者なので原因がわからない。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

the_permalink() は「記事のパーマリンクを出力」する関数です。呼び出し側にパーマリンクの文字列を返す関数ではありません(いわゆるfunctionではなくprocedure的な用途です)。 http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/the_permalink the_title() も同様です。 なので、最初にあった <a href="<?php the_permalink( ); ?>"><?php the_title(); ?></a> のような記述になります。どうしてもechoしたければ(全部phpモードで書きたければ) echo '<a href="'; the_permalink( ); echo '">'; the_title(); echo '</a>'; のようになります。

Azzz___
質問者

お礼

shimixさん どうもありがとうございました。 まさに求めている回答でした!謎が解けました。 仰る通りリンク先を見ると、WordPress側の出力は「画面に出力までする」みたいな感じのプロシージャ的な扱いになっているよですね。 WordPressを使う限り、今回の理解は結構大きいように思えます。 貴重な情報ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 文字列出力中に変数を{}でかこって同時に出力する時の疑問

    コーディングしているときに不思議に思ったので、タイトルに関することについて教えてください。 例えば、  echo "<a href=\"{$MyArray[$num]}\">リンク</a>"; というのは  echo "<a href=\"$MyArray[$num]\">リンク</a>"; としても動きますが、果たして、{}を使うメリットとは何でしょうか? そして、上記のコードに関数を織り交ぜて、その間数の出力結果を併せて出力したい場合には  echo "<a href=\"$MyArray[$num]\">リンク{MyFunc('something')}</a>"; としては動きません。 これを回避する方法として、  echo "<a href=\"$MyArray[$num]\">リンク" . MyFunc('something') . "</a>"; とする方法以外に便利なやり方はあるのでしょうか?

    • ベストアンサー
    • PHP
  • html込みの文字列をPHPの変数にしたい

    お世話になります。 WordPress内で、記事タイトルのリンクをhtml込みで変数にしたいと思っています。なにも考えずに書くと、 <?php $hoge = <a href="get_permalink();">the_title();</a> ?> となりますが、当然真っ白です。上記の考え方で正常に変数として取り込める書き方があれば教えて下さい。よろしくお願いします。

    • ベストアンサー
    • PHP
  • aaa.php?abc=1で渡したabcの値をechoする方法

    <a href='aaa.php?abc=1'>テスト</a> と記述したとします。 テストというリンクをクリックすると、aaa.phpに渡されますが、そのaaa.phpで、abcの値をechoしたいとき、どのように記述すればいいのでしょうか? <?php echo ×××; ?> ××× の部分が分からなくて困っています。初歩的ですみません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • WordPressのtag.phpのループ回数

    WordPressでタグの一覧ページtag.phpを作成してループを読み込ませたのですが、10記事しか表示されません。ループ部分のコードは以下のとおりです。 <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div> <a href="<?php the_permalink();?>" title="<?php the_title_attribute(); ?>"><img src="<?php echo wp_get_attachment_url( get_post_thumbnail_id() ); ?>" alt=""></a> <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p> </div><!-- /.child-box --> <?php endwhile;?> <?php else:?> <?php endif;?> 該当する記事は40ほどあるのですが、違うタグで試してもやはり10記事しか表示されません。 色々と試したのですが原因がわかりません。ご教授いただけませんでしょうか。

    • ベストアンサー
    • PHP
  • phpのECHOが出力されない:wordpress

    A B C "text" というJSONデータのCを画面に出したい時、 echo $obj['A']['B']['C']; もしくは echo $obj->A->B->C; という文をphpの中に書き込んだのですが、 echo ”Halloworld”とかは出るのに、変数になると出ません。 ちなみにfunction.phpでショートコードから呼び出すファイルに記述しています。 何が間違っているのでしょうか。

    • 締切済み
    • PHP
  • echo $a++とecho ++$a,の違いは?

    <?php $a = 10; echo $a++,PHP_EOL; ------------------------------  <?php $a = 10; echo ++$a, PHP_EOL; -------------------------------  以上の計算結果は同じですか?   もし同じでしたら、また悩みが増えます。  よろしくお願いします。

    • ベストアンサー
    • PHP
  • wordpress 検索フォームと結果を同ページで

    wordpressで検索フォームと検索結果を作成しています。 検索フォームは <form action="<?php echo home_url(); ?>" method="get"> <dl> <dt> お部屋のタイプ</dt> <dd> <?php wp_dropdown_categories(array( 'show_option_all' => '全てのタイプ' )); ?></dd> <dt> こだわり検索</dt> <dd> <?php $terms = get_terms('good'); foreach ($terms as $term): ?> <label> <input type="radio" name="good" value="<?php echo esc_attr($term->slug); ?>"> <?php echo esc_html($term->name); ?></label> <?php endforeach; ?> </select> </dd> <dt> キーワード</dt> <dd> <input type="text" value="" name="s" /> </dd> </dl> <input type="submit" value="この内容で検索!" /> </form> としています。 検索結果は「search.php」を作り <div id="wrapper"> <h4 class="h4_search">★検索結果</h4> <div id="content"> <section> <?php if (is_search()) : ?> <?php endif; ?> <?php if (have_posts()) :?> <div class="postWrap"> <?php while (have_posts()) : the_post(); ?> <article id="post-<?php the_ID(); ?>"> <div class="search"> <header> <h5><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><span><?php the_title(); ?></span></a></h5> <a href="<?php the_permalink(); ?>"> <?php the_post_thumbnail(); ?></a> <?php echo mb_substr(get_the_excerpt(),0, 50);?> <a href="<?php the_permalink();?>">&emsp;…&nbsp;続きを読む</a> </header> </div> <?php endwhile; ?> </div> <?php endif; ?> としています。 このままでは、検索フォームのあるページから別のページ(search.php)に飛んで検索結果が出ます。 ここで、検索結果を検索フォームのあるページ内で表示したいと思っております。 検索フォームに入力し、submitボタンを押すと、そのすぐ下に検索結果がずらりと表示できるようにしたいです。 このようなことは可能でしょうか? できればプラグインを使わずに実現したいので、コードを教えていただければ有難いです。 何卒よろしくお願いします。

    • ベストアンサー
    • PHP
  • ""と''で囲まれた構文をechoの中に入れる

    PHPでステータスが300以下の場合、案内ボタンが表示されるものを作っています。 案内ボタンは、下記のように、onclick="" の中にlocation.href='info.php'が入っており、""の中に''で囲まれた文が入っているものになります。 <input type="submit" onclick="location.href='info.php'" value="案内" > これをIF文でステータスが300以下の時に、表示出来るようにしたいと考えています。 通常、echo "" の中に""を入れる場合は、""の部分を''に変更すれば作動しますが、今回は下記のようにecho "" の中に、「""に囲まれた''」が入ったものをいれることになります。 下記のように、"" '' のいずれもを''にした場合動きませんでした。 このような場合、どのように記載すれば動くでしょうか? 現在の仕様 <?php IF ($status['Price']<300) { echo "<input type="submit" onclick='location.href='info.php'' value='案内' >"; } ELSE { echo ""; } ?> 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • WordPress 最新記事をまとめてURLにする

    参考のURL https://www.buzzhook.co.jp/ 下の方に「BACKYARD BLOG」があります。 アイキャッチ画像、年月日、カテゴリー、タイトル、抜粋全てどれをクリックしてもURLへジャンプします。 HTMLソースは下記になります。 <li> <a herf="#"> . . . </a> </li> WordPressのトップページも同様にしたいのですが、PHPプログラムはまだ初心者なので、うまくいきませんでした。結果はアイキャッチのみURLでした。 どこが違うのでしょうか? 宜しくお願いします。 <!-- main --> <main> <!-- 最新記事リスト --> <ul> <li> <a href="<?php the_permalink(); ?>"> <?php query_posts('posts_per_page=5'); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <!-- アイキャッチ表示 --> <?php if (has_post_thumbnail()) : ?> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('thumbnail'); ?></a> <?php else : ?> <a href="<?php the_permalink(); ?>"><img src="<?php bloginfo('template_url'); ?>/img/noimage.gif" width="100" height="100" alt="デフォルト画像" /></a> <?php endif ; ?> <!-- カテゴリー表示 --> <?php echo get_the_category()[0]->name; ?> <!-- 抜粋 --> <?php echo get_the_excerpt(); ?> <span class="date"> <?php the_time('Y年n月j日'); ?> <?php $days=30; $today=date('U'); $entry=get_the_time('U'); $diff1=date('U',($today - $entry))/86400; if ($days > $diff1) { echo '<img src="images/new.gif" alt="New" />'; } ?> </span> </a> </li> <?php endwhile; endif; ?> <?php wp_reset_query(); ?> </ul> <!-- 最新記事リストここまで --> </main>

    • ベストアンサー
    • PHP
  • WordPressで孫ページ一覧を取得

    下記のコードで子ページ一覧を取得していたのですが、子ページ一覧ではなく孫ページ一覧を取得する必要が出てきました。 <?php $parentId = get_the_ID(); $args = 'posts_per_page=-1&post_type=page&orderby=menu_order&post_parent='.$parentId; query_posts($args); if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="child-box"> <a href="<?php the_permalink(); ?>"><img src="<?php echo wp_get_attachment_url( get_post_thumbnail_id() ); ?>" width="190" alt=""></a> <p class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p> <p>価格:<span class="price"><?php $selling_price = get_field('selling_price'); echo $selling_price."円"; ?></span></p> </div> <?php endwhile;?> <?php wp_reset_query(); ?> <?php else:?> <?php endif;?> 上記のような形で孫ページ一覧を取得する方法をご存知のかた、是非ご教授ください。

    • ベストアンサー
    • PHP