[WordPress] 「続きを読む」のリンクに余計な文字列がつかないようにする

公開

スポンサーリンク

WordPressで投稿に<!–more–>を入れると、トップページやアーカイブページではthe_content()で本文を表示した時に、<!–more–>を入れた手前の部分までが表示され、「続きを読む」というリンクが挿入されます。非常に便利な機能なのですが、「続きを読む」のリンクには#more-post_idという文字列が追加されてしまいます。「続きを読む」のリンクをクリックしてシングルページに移動した時、本文の続きの部分に飛ばすためのものです。

この文字列が必要ない場合の対応として、以下のコードを使用中のテーマ内のfunction.phpに書き加える方法が公式ドキュメントで紹介されていました。

function remove_more_jump_link($link) { 
  $offset = strpos($link, '#more-');
  if ($offset) {
    $end = strpos($link, '"',$offset);
  }
  if ($end) {
    $link = substr_replace($link, '', $offset, $end-$offset);
  }
  return $link;
}
add_filter('the_content_more_link', 'remove_more_jump_link');

これでリンク先から余計な文字列が削除されます。

スポンサーリンク


Comment