pict-drupal.png 記事のティーザー表示時にリンクリストの最後に表示される「続きを読む」をもっと目立つように記事の直後に表示するように改良します。

参考記事:How to display "Read more" after $content
http://drupal.org/node/225525


以下のようなコードをnode.tpl.phpのはじめの方(実際に表示をする前)に挿入した。

  1. <?php
  2.   if(preg_match('!<a[^>]+>' . t('Read more') . '</a>!', $links, $match)) {
  3.     // アンカーを除去
  4.     $links = preg_replace('/<a.+?href.+?>' . t('Read more') . '<\/a>/i', '', $links);
  5.     // liタグを除去
  6.     $links = preg_replace('/<li class="node_read_more.*?">.*?<\/li>/i', '', $links);
  7.     // $moreを作成
  8.     $more = '<div class="more">' . $match[0] . '</div>';
  9.     // コンテンツの最後 </p>の直前にリンクを挿入する
  10.     $content = preg_replace('/<\/p$/', $more.'</p>', $content);
  11.   }
  12. ?>

次に、print $content でコンテンツを表示している部分を修正し、$moreを$contentの直後にprintするようにした。尚、この例では、$moreは<div class="more">というSPANタグで囲みましたたが、ここは各自の都合に合わせて変更してください。

まだ投票はありません