WordPress で、記事内の見出しレベルを調整して本文を出力するプラグイン、作ってみました。

  • テンプレートを変えたら、昔書いた本文の見出しと合わなくなっちゃった。
  • トップページと個別記事ページで見出しのレベルを変えたい。

などの場合に有効です。

ダウンロード: wp-hnconvert.php.txt

使い方

名前を「wp-hnconvert.php」に変えて保存したものをプラグインディレクトリに放り込んで有効化。

the_hn_converted_content(2) で記事内の見出しのレベルが2足されて表示されます。
h1 は h3に。
h4 は h6に。
見出しタグはh6までしかないので、h5 や h6 はh6になります。

また、the_hn_converted_content(-1) という風に負の引数を指定すると、見出しのレベルが引かれて表示されます。
h3 は h2 に。
h5 は h4 に。
h1 以上の見出しはないので、h1 は h1 のままです。

詳しくは the_hn_converted_content(delta, 'more_link_text', strip_teaser, 'more_file') となっていて、「the_content」 ]の第一引数の前に見出し調整用の引数が入っただけです。
なので、「the_content」の他の引数も指定できます。

背景

現在製作中のサイトで必要になったのだけど、検索してみたところ見当たらなかったので作ってみました。
Movable Type のプラグインTextpattern に移植したものの、そのまた移植です。

Comments

  • 以前からこの問題で困っておりました。
    さっそく試してみたのですが、どうやっても見出しレベルが調整されません。

    具体的には、archive.phpの<?php the_content(); ?>の部分を<?php the_hn_converted_content(-1); ?>と置き換えました。

    WordPress ME2.2.3を使っております。
    アドバイスいただけると幸いです。

    #1 rea2007-12-29 17:59

  • >rea さん
    コメントありがとうございます。

    これまで 2.0.11 でしか動作を確認していなかったため、今回 WordPress ME2.2.3 で確認してみましたところ正常に動作しました。

    http://www.7to3.net/lab/wordpress/

    上記トップページの記事の、罫線の上側が <?php the_content(); ?> で、下側が <?php the_hn_converted_content(1); ?> で表示したものです。

    ソースコードや実際のサイトを見せていただければ、もう少しお力になれるかもしれません。

    #2 しゅうへい2007-12-30 03:24

  • アドバイス、ありがとうございます。

    今まではarchive.phpをいじって見出しレベルを調整しようとしていたのですが、
    index.phpのほうをいじってみたところ問題なく動きました。
    (index.php以外ではこのプラグインが動かないのでしょうか?)

    何はともあれ、解決して助かりました。ありがとうございました。

    #3 rea2007-12-30 18:55

  • >reaさん
    archive.php でも確認したところ、動くようです。

    http://www.7to3.net/lab/wordpress/?m=200712

    テンプレートによらず、
    <?php while (have_posts()) : the_post(); ?>~<?php endwhile; ?>
    のループ内であれば、動くと思うのですが・・・。
    何か別の要因でもあるのでしょうか?

    何はともあれ、解決されたようで良かったです。

    #4 しゅうへい2007-12-31 01:30

  • >しゅうへいさん
    archive.php でも問題なく動きました。
    とんだ勘違いをしていたようで、初歩的なミスでした…。
    お騒がせいたしました。

    #5 rea2008-01-02 21:39

  • >reaさん
    いえいえ。
    ちゃんと動いたようで、ホッとしました。

    それからブログでご紹介いただいたようで、どうもありがとうございました。

    #6 しゅうへい2008-01-05 18:16

*
*

Help