関連記事のみ全体をリンク化したい

このトピックには15件の返信が含まれ、2人の参加者がいます。1 週、 4 日前 かうたっく さんが最後の更新を行いました。

  • 投稿者
    投稿
  • #54738 返信

    ささぽん

    お世話になります。

    カスタマイズでエントリーカード全体をリンク化をすると全体リンク化しますが、エントリーカードは全体リンク化させず、関連記事だけを全体リンク化させたい場合、どうすればいいでしょうか?

  • #54744 返信
    わいひら
    わいひら
    キーマスター

    動作確認はしていないんですけど、子テーマのfunctions.phpに以下のコードを貼り付けると多分いけるかと思います。

    function get_template_part_card($template_name){
      ob_start();//バッファリング
      get_template_part($template_name);//テンプレートの呼び出し
      $template = ob_get_clean();//テンプレート内容を変数に代入
      if (($template_name == 'related-entry-card') || ($template_name == 'related-entry-thumbnail-card') ) {
        //エントリーカードをカード化する場合はaタグを削除して全体をa.hover-cardで囲む
        $template = wrap_entry_card($template);
      }
      echo $template;
    }
  • #54745 返信

    ささぽん

    >わいひらさん

    php編集しないとと駄目なのですか・・・
    関連記事のサムネ画像とタイトル文章を一緒のリンク化ってするのにもやはりphp編集が必要でしょうか?

    cssのdisplay block;とかで要素(サムネ画像、タイトル)を一緒にリンク化させるとかもやはりcssだけでは難しいでしょうか?

  • #54746 返信
    わいひら
    わいひら
    キーマスター

    CSSだけでは無理です。
    PHPを使いたくない場合は、jQueryを使えば出来ないこともないかもしれないけど、そっちの方が面倒です。

  • #54750 返信

    ささぽん

    >わいひらさん

    そうなんですね・・・
    functions.phpの編集方法、色々下調べしてから編集することにします。

    教えていただいてありがとうございました。

  • #54755 返信

    かうたっく

    そのコードをコピペしました!
    すると反映しなかったので、困ってる感じかもしれません。

    ちなみに関連記事の設定をデフォルトから別のデザインに変更すれば、全体リンクになってたように思います

    外観 -カスタマイズ ー レイアウト(投稿・固定ページ) -関連記事表示タイプ
    ボタンをポチポチっとするだけなので、どんな表示か試すのもカンタンかもしれません。

  • #54758 返信
    わいひら
    わいひら
    キーマスター

    試したら僕はうまくいきました。
    テーマカスタマイザーの「レイアウト(全体・リスト)」の「エントリーカード全体をリンク化 」は有効になっているでしょうか。
    ただ、上記のカスタマイズ方法では、ブログカードは全体リンク化される模様。

  • #54759 返信
    わいひら
    わいひら
    キーマスター

    ブログカードも「全体リンク化」しないで関連記事のみ「全体リンク化」するなら以下のように書く必要がありそう。
    以下子テーマのfunctions.phpにコピペ。

    function get_template_part_card($template_name){
      ob_start();//バッファリング
      get_template_part($template_name);//テンプレートの呼び出し
      $template = ob_get_clean();//テンプレート内容を変数に代入
      if (($template_name == 'related-entry-card') || ($template_name == 'related-entry-thumbnail-card') ) {
        //エントリーカードをカード化する場合はaタグを削除して全体をa.hover-cardで囲む
        $template = wrap_entry_card($template);
      }
      echo $template;
    }
    
    function wrap_entry_card($template, $url = null, $is_target_blank = false, $is_nofollow = false, $additional_classes = null){
      if ( is_wraped_entry_card() && !$url ) {
        $template = preg_replace('/<a [^>]+?>/i', '', $template);
        $template = str_replace('</a>', '', $template);
    
        $class = null;
        if ( !$url ) {
          $url = get_the_permalink();
        }
    
        $target = null;
        if ( $is_target_blank ) {
          $target = ' target="_blank"';
        }
    
        //コメント内でブログカード呼び出しが行われた際はnofollowをつける
        $nofollow = $is_nofollow ? ' rel="nofollow"' : null;
        $template = '<a class="hover-card'.$additional_classes.'" href="'.$url.'"'.$target.$nofollow.'>'.$template.'</a>';
      }
      return $template;
    }
  • #54761 返信

    かうたっく

    テーマカスタマイザーの「レイアウト(全体・リスト)」の「エントリーカード全体をリンク化 」
    私の環境では無効になっていて、どちらも試しました。なぜかわかりませんけど、反映しませんでした。

    テーマカスタマイザーの「レイアウト(全体・リスト)」の「エントリーカード全体をリンク化 」を有効化することで、
    Simplicityのレイアウトカスタマイズにある「エントリーカード全体をリンク化」機能の説明のとおりの動きになります。

    ※サーバー・ブラウザのキャッシュもない状態。

    自分の環境だけなら良いですが、とりあえずご報告
    なぜだか…サッパリわかりません・・・

  • #54782 返信
    わいひら
    わいひら
    キーマスター

    ちょっと僕の環境では、普通に動作しているようなので、
    原因がわからないと、何とも出来ないかもしれません;謎です。

  • #54801 返信

    ささぽん

    >わいひらさん
    >かうたっくさん

    お二人ともありがとうございます。

    自分でもやってみましたが、かうたっくさんと同じく反映されませんでした。

    とはいえ、関連記事だけのリンク化は自己満足で、クリック率上がるものでもなさそうなので別にできなかったらできなかったでいいかなーと・・・

    重ね重ね教えていただきありがとうございました。

  • #54814 返信
    わいひら
    わいひら
    キーマスター

    前回の、コードは、ブログカードの設定状態により、動作が変わるのかも。
    以下なら、おそらくうまくいくかと思います。(※一時的に当サイトも、関連記事が全体選択されるようになっています)

    function get_template_part_card($template_name){
      ob_start();//バッファリング
      get_template_part($template_name);//テンプレートの呼び出し
      $template = ob_get_clean();//テンプレート内容を変数に代入
      if (($template_name == 'related-entry-card') || ($template_name == 'related-entry-thumbnail-card') ) {
        //エントリーカードをカード化する場合はaタグを削除して全体をa.hover-cardで囲む
        $template = wrap_entry_card($template);
      }
      echo $template;
    }
    
    function wrap_entry_card($template, $url = null, $is_target_blank = false, $is_nofollow = false, $additional_classes = null){
      if ( is_wraped_entry_card() && (strpos($template,'class="blog-card') === false) ) {
        $template = preg_replace('/<a [^>]+?>/i', '', $template);
        $template = str_replace('</a>', '', $template);
    
        $class = null;
        if ( !$url ) {
          $url = get_the_permalink();
        }
    
        $target = null;
        if ( $is_target_blank ) {
          $target = ' target="_blank"';
        }
    
        //コメント内でブログカード呼び出しが行われた際はnofollowをつける
        $nofollow = $is_nofollow ? ' rel="nofollow"' : null;
        $template = '<a class="hover-card'.$additional_classes.'" href="'.$url.'"'.$target.$nofollow.'>'.$template.'</a>';
      }
      return $template;
    }

    まあ、確かにクリック率はさほど変わらないとは思います。

  • #54822 返信

    かうたっく

    カスタマイザーの設定は下記の通りが前提。

    外観 -カスタマイズ ー レイアウト(投稿・固定ページ) -関連記事表示タイプ

    関連記事表示タイプ
    関連記事の表示スタイルの設定です。
    デフォルト(推奨表示数3-10

    こちらはデフォルトでサムネイルではない


    外観 -カスタマイズ ー 「レイアウト(全体・リスト)」の

    一覧リストのスタイル
    一覧(インデックス)ページの表示スタイル設定。
    エントリーカード(デフォルト)

    チェックあり

    次同じく
    外観 -カスタマイズ ー 「レイアウト(全体・リスト)」の「エントリーカード全体をリンク化 」

    エントリーカード全体をリンク化
    インデックスリスト・関連記事のエントリーカードやブログカード全体をAタグで囲ってリンク化するか。

    これはチェックなし

    テーマカスタマイザーの「レイアウト(全体・リスト)」の「エントリーカード全体をリンク化 」を有効化することで、
    Simplicityのレイアウトカスタマイズにある「エントリーカード全体をリンク化」機能の説明のとおりの動きになります。

    ※サーバー・ブラウザのキャッシュもない状態。

    #54761

    と、確認したうえで書きました。

    でも、エックスサーバーのキャッシュは

    PHP 7.1 / PHP 7.0 / PHP 5.6 / PHP 5.5
    「FastCGI」と「OPcache」が標準で有効です。
    設定を変更することはできません。

    引用元:サーバーパネルの『PHP高速化設定(FastCGI化)』

    再度確認したら、『PHPバージョンの切り替え』設定がPHP7.0.18
    思いっきりキャッシュの影響がありそうです?

    確認した時はなぜかキャッシュはoffになっていた。※何も触ってない

    wp-includes/version.phpを確認したらサブドメインテストブログも、私のドメインブログも

    $required_php_version = ‘5.2.4’;

    となっていて、ちょっと混乱してます

    そしてBitNamiローカル(新しい目?の環境だったような)で確認しても状況は同じで、
    反映しません。

    というワチャワチャな報告です。でスミマセン、わからん!の一言で。

    確かにクリック率はさほど変わらないとは思います。

    たしかに。ユーザーさんのポチポチが多少増える事も考えられる的な

  • #54823 返信

    かうたっく

    PHP5.6.30
    現在公式にサポートされているバージョンです。

    PHP5.5.38 / PHP5.1.6
    旧バージョンです。
    今後バージョンアップの予定はないため新規での利用は推奨しません。
    PHP 7.1.x / PHP 7.0.x への移行を推奨します。

    PHP5.6.30に戻してもサポートされているためか、反映せず
    PHP5.5.38でも同じで。見る場所が違ったのかもですが、報告のみとさせていただきます^^

  • #54825 返信
    わいひら
    わいひら
    キーマスター

    エントリーカード全体をリンク化
    インデックスリスト・関連記事のエントリーカードやブログカード全体をAタグで囲ってリンク化するか。

    これはチェック(有効化)する必要ありますよ。

  • #54828 返信

    かうたっく

    #54761

    テーマカスタマイザーの「レイアウト(全体・リスト)」の「エントリーカード全体をリンク化 」
    私の環境では無効になっていて、どちらも試しました。なぜかわかりませんけど、反映しませんでした。

    テーマカスタマイザーの「レイアウト(全体・リスト)」の「エントリーカード全体をリンク化 」を有効化することで、
    Simplicityのレイアウトカスタマイズにある「エントリーカード全体をリンク化」機能の説明のとおりの動きになります。

    有効にしていると、カスタマイズなしでも反映した感じでしたねっ^^

返信先: 関連記事のみ全体をリンク化したい
あなたの情報:




スポンサーリンク
アドセンス(大)
アドセンス(大)