web-dev-qa-db-ja.com

ハイパーリンクは抜粋で表示できますか?

デフォルトでは、すべてのハイパーリンクが抜粋から削除されているように見えます。おそらくこれは、リンクの電力が希薄になるのを防ぐためです。

抜粋コンテンツにハイパーリンクを表示できるようにする方法はありますか?

2
Steve

WordPressはタグを取り除くためにフィルタwp_trim_excerptを使います。フィルタを削除して、リンクを許可する独自のフィルタを作成することができます。

<?php
function new_wp_trim_excerpt($text) {
  $raw_excerpt = $text;
  if ( '' == $text ) {
    $text = get_the_content('');
    $text = strip_shortcodes( $text );
    $text = apply_filters('the_content', $text);
    $text = str_replace(']]>', ']]>', $text);
    $text = strip_tags($text, '<a>');
    $excerpt_length = apply_filters('excerpt_length', 55);
    $excerpt_more = apply_filters('excerpt_more', ' ' . '[...]');
    $words = preg_split('/(<a.*?a>)|\n|\r|\t|\s/', $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE );
    if ( count($words) > $excerpt_length ) {
      array_pop($words);
      $text = implode(' ', $words);
      $text = $text . $excerpt_more;
      } 
    else {
      $text = implode(' ', $words);
      }
    }
  return apply_filters('new_wp_trim_excerpt', $text, $raw_excerpt);
  }
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'new_wp_trim_excerpt');

ソース: http://lewayotte.com/2010/09/22/allowing-hyperlinks-in-your-wordpress-excerpts/ /

5
Jeremy Jared