IT号外

WordPress関数でURLを取得してハイパーリンクを作ろうとしたら、aタグとURLが分離して表示されてしまった話しと解決策の備忘録

WordPressの関数をPHPで取得して、それをHTMLのタグ内に埋め込みたいといったようなシーンは多々あるかと思います。

昨日それをやろうとして何気にハマってしまったので、正しい書き方をメモしておこうと思います。

【やりたかった事】:記事ごとのリンクをaタグで取得したかった。こんな感じのリンクのタグを記事ごとに表示したかった→ <a href=”https://figreen.org/it/id1″>リンク</a>

【自分がやった書き方】:

<?php
$url = ‘ <a href=”‘;
$url .= the_permalink();
$url .= ‘”>リンク</a>’;
echo $url;
?>

【上記の書き方での表示のされ方】:

https://figreen.org/it/id1<a href=””>リンク</a>

と、まあこの書き方だとなぜかリンクのタグからWordPress関数で取得したURLが飛び出て表示されてしまったのだ。テンプレートの仕様なのか何なのか分からないが、とにかくaタグから外れてしまっていた。PHP変数の後ろや前にテキストを追加で入れていってしまっては正しく動作しなくなると言うことだろうか。

で、ネットで調べた結果、正式な書き方はこうだという。

<?php
echo ‘<a href=”‘;
the_permalink();
echo ‘”>リンク</a>’;
?>

この書き方だときちんとブラウザに

<a href=”https://figreen.org/it/id1″>リンク</a>

といった正しい形式で記述された。タグの前後はechoで表示し、関数は変数に入れずにそのままで記述すれば良いようだ。こういった事が初心者の自分のような人間には非常に高い壁となってしまった。テーマ編集画面に、こういったエラーに気付かせてくれる機能とかがあればいいのだが。

なお、こういったWordPress関数とHTMLタグをミックスさせたいときはダブルクォート「”」とシングルクォート「’」がかなり入り乱れてて、入力する時ミスりやすいなと思ったのでそこにも注意が必要だ。

 

モバイルバージョンを終了