メモ代わりに最終的なコードを残しておきます。
wordpressのfunctions.phpに、nnssn様のコードと、投稿内のtemplete_urlを変換するショートコードを置換するコードを足して以下のようにし、固定ページでget_custom_contentを呼ぶような形にしました。
なにか間違っていたらすいません。
function get_custom_content() {
//本文からh2タグをリストアップ
$content = get_the_content();
$h2_list = array();
preg_match_all('/<h2 class="article_h2">(.*?)</h2>/', $content, $h2_list);
//置換・目次の準備
list($h2_outer, $h2_inner) = $h2_list;
$search = $h2_outer;
$replace = array();
$li_list = array();
foreach ($h2_inner as $key => $val) {
$replace[] = sprintf('<h2 id="link%s" class="article_h2">%s</h2>', $key, $val);
$li_list[] = sprintf('<li><a href="#link%s">> %s</a></li>', $key, $val);
}
//目次部分
$nav = '<nav class="article_nav"><ul>' . implode("\n", $li_list) ."</ul></nav>";
//ショートコードを置換
$url_replace = array(
//'変更前' => '変更後',
'[url]' => get_bloginfo('url'),
'[template_url]' => get_bloginfo('template_url')
);
$content = str_replace(array_keys($url_replace), $url_replace, $content);
//リンク用のidを埋め込んだ本文
$body = str_replace($search, $replace, $content);
echo $nav;
echo $body;
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/01/15 04:35