抜粋の開始位置

  • このトピックには2件の返信、2人の参加者があり、最後にjump-upにより10年、 7ヶ月前に更新されました。
2件の返信スレッドを表示中
  • 投稿者
    投稿
    • #36575
      jump-up
      ゲスト

      お世話になります。
      Simplicityはきちんと表示されるのに、プラグインを使ったり他のテーマだと違ったりするので、もし可能であれば教えていただきいと思いました。

      Simplicityではブログカード形式で表示される記事の抜粋が、当該記事にTableOfContentsプラグイン(目次作成プラグイン)を利用して、記事の最初(最初のH2ヘッダーより前)に目次があっても、最初のH2ヘッダーから抜粋が始まります。
      ところが、他のテーマやプラグインを使った関連記事一覧などでは、抜粋が目次から始まるものが多くあります。

      抜粋の終了位置や終了文字に関する記事はたくさん見かけることができるのですが、開始位置については検索しても見つけることが出来ませんでした。

      この点についてどのようにしているのか教えて頂けると嬉しいです。
      お手すきの時にでも時間がありましたらよろしくお願いします。

    • #36579
      アバター画像わいひら
      キーマスター

      ところが、他のテーマやプラグインを使った関連記事一覧などでは、抜粋が目次から始まるものが多くあります。

      ちょっと実際のページを見ていないので、詳しいことわからないので推測になりますが、それはSimplicityが独自の抜粋取得関数を使用しているからではないかと思います。
      Simplicityが利用しているのは以下の関数です。

      function get_content_excerpt($content, $length = 70){
        $content =  preg_replace('/<!--more-->.+/is', '', $content); //moreタグ以降削除
        $content =  strip_shortcodes($content);//ショートコード削除
        $content =  strip_tags($content);//タグの除去
        $content =  str_replace('&nbsp;', '', $content);//特殊文字の削除(今回はスペースのみ)
        $content =  preg_replace('/\[.+?\]/i', '', $content); //ショートコードを取り除く
        $content =  preg_replace(URL_REG, '', $content); //URLを取り除く
        // $content =  preg_replace('/\s/iu',"",$content); //余分な空白を削除
        $over    =  intval(mb_strlen($content)) > intval($length);
        $content =  mb_substr($content, 0, $length);//文字列を指定した長さで切り取る
        if ( get_excerpt_more() && $over ) {
          $content = $content.get_excerpt_more();
        }
        return $content;
      }

      おそらく、ショートコードを排除しているからだと思います。

      上記コードと内容が変わってしまったのですが、詳しいことは以下のページに書いてあります。
      WordPressで綺麗な本文抜粋を取得する方法(moreタグ対応、ショートコード、タグ、特殊文字削除)

    • #36582
      jump-up
      ゲスト

      ありがとうございました。
      知りたい部分でした(≧∇≦)/

2件の返信スレッドを表示中
  • トピック「抜粋の開始位置」には新しい返信をつけることはできません。
スポンサーリンク
アドセンス(大)
アドセンス(大)