質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1971閲覧

wordpressでloop.phpでaタグが正しく出力されない

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/01/22 08:30

###前提・実現したいこと
wordpressで記事全体をリンク範囲にしたくて、loop.phpの親要素の直下にaタグを配置し、その中にタイトル等の要素を入れたい
※ページ下部のコードのような構造にしたい

使用している親テーマ:LION MEDIA
http://lionmedia.fit-jp.com/

###発生している問題・エラーメッセージ
上記のような記述をしてサイト上で見てみると、いろいろな要素の中にaタグが出力されて、正しく出力されない
titleを出力している箇所の要素など、小さい単位で使えば正しく出力されるのですが、全体を囲うとうまくいきません・・・

###該当のソースコード

<?php if(get_the_category()){ $cat_meta = get_option("cat_meta_data"); $cat = get_the_category(); $cat_id = $cat[0]->cat_ID; } ?> <article class="archive-item archive-item__category--<?php echo $cat_id ?>"> <a href="<?php the_permalink(); ?>"> <div class="acv-itm-eyecatch"> <div class="acv-itm-eyecatch__inner"> <?php if(has_post_thumbnail()) {the_post_thumbnail('icatch');} else {echo '<img src="'.get_template_directory_uri().'/img/img_no.gif" alt="NO IMAGE"/>';}?> </div> </div> <div class="acv-itm-text"> <!--archive-date--> <ul class="acv-itm-text__date-lists"> <li class="acv-itm-text__date-item acv-itm-text__date--dating"><span class="icon-calendar"><?php the_time('Y.m.d'); ?></span></li> <li class="acv-itm-text__date-item acv-itm-text__date--category"><span class="icon-folder"><?php the_category(' ');?></span></li> </ul> <!--archive-title--> <h2 class="acv-itm-text__ttl"> <span> <?php if(mb_strlen($post->post_title)>40) { $title= mb_substr($post->post_title,0,40) ; echo $title. "..." ;} else {echo $post->post_title;}?> </span> </h2> <!--archive-text--> <p class="acv-itm-text__main-text"> <?php echo get_the_excerpt(); ?> </p> <!--archive-tag--> <div class="acv-itm-text__tag-lists acv-itm-text__date--tag"><?php if(has_tag()==true) : ?> <span class="acv-itm-text__tag-item"><?php if (get_option('fit_theme_tagNumber')){ $number = get_option('fit_theme_tagNumber'); }else{ $number = '5'; } $posttags = get_the_tags(); $count = '0'; foreach($posttags as $tag) { $count++; if ($count > $number) break; echo '<a href="'. get_tag_link($tag->term_id) .'" rel="tag">'. $tag->name ."</a>"; } ?></span> <?php endif; ?> </div> </div> </a> </article>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

<a>要素の中に<a>要素があるからです。

PHP

1<li class="acv-itm-text__date-item acv-itm-text__date--category"><span class="icon-folder"><?php the_category(' ');?></span></li>

この行でthe_category()を使用していますよね?これはカテゴリへのリンクを出力します。
<a>要素の子要素に<a>要素を持つことは出来ないので、カテゴリのリンクが出力される直前で強制的に親の<a>要素が閉じられます。

試しにthe_category()をコメントアウト(もしくは削除)してみてください。正常に出力されるはずです。

投稿2018/01/22 08:46

編集2018/01/22 08:47
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/01/22 14:03

構造が関係していたのですね...!無事解決出来ました!ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問