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

  • このトピックには15件の返信、2人の参加者があり、最後にかうたっくにより6年、 8ヶ月前に更新されました。
15件の返信スレッドを表示中
  • 投稿者
    投稿
    • #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のレイアウトカスタマイズにある「エントリーカード全体をリンク化」機能の説明のとおりの動きになります。

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

15件の返信スレッドを表示中
返信先: 関連記事のみ全体をリンク化したいで#54822に返信
あなたの情報:




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