[Vaster2]トップページのラベルにリンクをつけました

更新  
公開
当サイトはアフィリエイト広告を使用しています

Vaster2



この記事は最後の更新から3年以上が経過しています
目次

トップページのラベルにリンクをつけました

記事のラベルにリンクを付けた時と、同じようにコードを追加すれば、トップページのラベルにもリンクがつきました。

ただ、トップページの個別記事をクリックするところで、サムネイル画像にしか、リンクがつかなくなってしまいました。(ブラウザの解釈らしいです)

なので、記事タイトル、スニペット(要約)の部分にもリンクをつけたいと思います。

(サムネイル画像の部分も”ブラウザの解釈”に頼るのではなく、あらためてリンクをつけます。)

大まかな作業手順としては、ラベルにリンクをつける(+CSSの追加)、サムネイル画像にリンクをつける、記事タイトル・スニペットにまとめてリンクをつける。の 3工程です。

あくまでも素人の作業です。リンクをつけることを主目的にしました。他にもっといいやり方があると思いますが、これが精一杯でした。

一応ですが、デフォルトテンプレートでの動作を確認しました。

HTMLを編集します。必ずバックアップをとってから作業してください。また、この変更に正確性がないことに留意してください。

全体像

変更したところの全体像です。面倒でしたら以下の作業手順を読まなくても、これをコピペすればある程度はいけるはず。

また、今回の作業とは直接関係ないと思いますが、デフォルトテンプレートの1364行目にあった<!--公開日を表示-->の文字は消してあります。

                  <!--TOP カテゴリ アーカイブの時-->
                  <b:if cond='data:blog.pageType in {&quot;index&quot;, &quot;archive&quot;}'>

                    <div class='article-list'>
                       <a class='article-list-link' expr:href='data:post.url'>
                        <b:if cond='data:post.firstImageUrl'>
       <div class='article-thumbnail'>
                          <img expr:src='data:post.firstImageUrl'/>
       </div>
                          <b:else/>
      
                        </b:if>
                       </a>
                      <div class='article-list-title'>
 <p class='post-timestamp'>
                          <i aria-hidden='true' class='fa fa-clock-o'/>
  <b:if cond='data:post.dateHeader'>
     <script type='text/javascript'>var hiduke = &quot;<data:post.dateHeader/>&quot;</script>
   </b:if>
 
     <b:if cond='data:top.showTimestamp'>
       
        <b:if cond='data:post.url'>
            <meta expr:content='data:post.canonicalUrl' itemprop='url'/>
           <abbr class='published' expr:title='data:post.timestampISO8601' itemprop='datePublished'><script type='text/javascript'>document.write(hiduke)</script></abbr>
        </b:if>
    </b:if>
  </p>
<p class='post-tag'>
                          <i aria-hidden='true' class='fa fa-tag'/>
                          <b:loop values='data:post.labels' var='label'>
                             <a class='article-label' expr:href='data:label.url'>
                              <data:label.name/>
                             </a>
                          </b:loop>
  </p>
                       <a class='article-list-link' expr:href='data:post.url'>
                        <h2>
                          
                            <data:post.title/>
                          
                        </h2>

                        <p class='snippet'>
<data:post.snippet/> 
                        </p>
                       </a>
                      </div>
                      <div style='clear:both;'/>
                    </div>
                    
                    <!--TOP カテゴリ アーカイブここまで-->

デフォルトテンプレートに上記のコードをコピペしたときはこんな感じになります。

ラベルにリンクを付ける

[テーマ]-[HTMLの編集]。CTRL+Fで<data:label.name/>を検索します。

5つあるうちの上から2つ目にこんなコードがあります。デフォルトテンプレート1350行目あたり

<p class='post-tag'>
                          <i aria-hidden='true' class='fa fa-tag'/>
                          <b:loop values='data:post.labels' var='label'>
                            
                              <data:label.name/>
                           
                          </b:loop>
  </p>

このなかの <data:label.name/>

<a class='article-label' expr:href='data:label.url'></a> ではさみます。

<p class='post-tag'>
                          <i aria-hidden='true' class='fa fa-tag'/>
                          <b:loop values='data:post.labels' var='label'>
                             <a class='article-label' expr:href='data:label.url'>
                              <data:label.name/>
                             </a>
                          </b:loop>
</p>

これでラベルにリンクがつきます。

あとでリンクの色とかかえたいのでclass='article-label'をつけました。

参考サイト

Vaster2のラベルのデザインを変えてみよう!コピペでOK! - 父ちゃんの日々ログ

サムネイル画像にリンクをつける

<!--TOP カテゴリ アーカイブの時--> の下にある

<a class='article-list-link' expr:href='data:post.url'> と、<!--TOP カテゴリ アーカイブここまで--> の上の </a> を移動させます。デフォルトテンプレートだと1324行目と1371行目

元コード

<!--TOP カテゴリ アーカイブの時-->
                  <b:if cond='data:blog.pageType in {&quot;index&quot;, &quot;archive&quot;}'>
<a class='article-list-link' expr:href='data:post.url'> ←"これ”
                    <div class='article-list'>
                      
                        <b:if cond='data:post.firstImageUrl'>
       <div class='article-thumbnail'>
                          <img expr:src='data:post.firstImageUrl'/>
       </div>
                          <b:else/>
      
                        </b:if>

移動させる </a> の場所

                      <div style='clear:both;'/>
                    </div>
                    </a> ←"これ”
                    <!--TOP カテゴリ アーカイブここまで-->

ここに移動させる

<div class='article-list'> の下に <a class='article-list-link' expr:href='data:post.url'> を移動

</b:if> の下に </a> を移動

<!--TOP カテゴリ アーカイブの時-->
                  <b:if cond='data:blog.pageType in {&quot;index&quot;, &quot;archive&quot;}'>

                    <div class='article-list'>
 <a class='article-list-link' expr:href='data:post.url'>                
                        <b:if cond='data:post.firstImageUrl'>
       <div class='article-thumbnail'>
                          <img expr:src='data:post.firstImageUrl'/>
       </div>
                          <b:else/>
      
                        </b:if>
                        </a>

これでサムネイル画像にリンクがつきます。

記事タイトル・スニペットにまとめてリンクを付ける

サムネイル画像リンクをつけた時に使った <a class='article-list-link' expr:href='data:post.url'></a> を流用します。

貼り付ける位置は <a class='article-list-link' expr:href='data:post.url'><h2><data:post.title/></h2> の上、

</a><p class='snippet'><data:post.snippet/></p> の下です。

                        <a class='article-list-link' expr:href='data:post.url'>
                        <h2>
                          
                            <data:post.title/>
                          
                        </h2>

                        <p class='snippet'>
<data:post.snippet/> 
                        </p>
                        </a>
                      </div>
                      <div style='clear:both;'/>
                    </div>
                    </a>
                    <!--TOP カテゴリ アーカイブここまで-->

これで記事タイトル・スニペットにまとめてリンクがつきます。

(デフォルトテンプレートにあった<!--公開日を表示--> の文字は消してあります。)

補足

素人ながら、デフォルトテンプレートのコードを見ると、上からサムネイル画像、日付、ラベル、記事タイトル、スニペットの順に並んでいて、これらをひとかたまりにしてaタグでリンク(記事ページに移動)が設定されているようです。

このままラベルにリンク(ラベルに移動)をつけるということは、aタグのなかにaタグをいれることになり、これが今回の原因のようです。

さらに調べると、非推奨のようですが ラベルにつけた aタグを objectタグではさめば、今回のようにサムネイル画像、記事タイトル・スニペットにあらためてリンクをつけなくても大丈夫そうです。(未検証)

<p class='post-tag'>
                          <i aria-hidden='true' class='fa fa-tag'/>
<b:loop values='data:post.labels' var='label'>
                              <object><a class='article-label' expr:href='data:label.url'>
                              <data:label.name/>
                            </a></object>
                          </b:loop>
</p>

aタグの中にaタグを書きたい時のtips



検索

お知らせ

カテゴリー

Random Picks

すたすた式

Enjoy!👍

QooQ