具体的にやりたいことは、こんな感じです↓
・原則、ページ名の末尾だけを取り出して、タイトル部分に表示
・ページ名が特定の文字列(以下の例ではcccc/)から始まる場合は、
ページ名全体をタイトル部分に表示
(例)
aaaa/bbbb というページ名の場合 → bbbbのみをタイトルに表示
cccc/dddd というページ名の場合 → cccc/ddddをタイトルに表示
何か良い方法はありますでしょうか。宜しくお願い致します。
question:1401624986と似ていたので回答を流用しますが、ページタイトルを作っている所で分岐させるのがいいと思います。
例はPukiWiki 1.4.7 UTF-8版ですが、他のバージョンでも同様だと思いいます。
ページタイトルは lib/pukiwiki.php、大見出し<h1>は lib/html.php で作られていますが、どちらか一方だけでも有効です。
# lib/pukiwiki.php 104行目 # ブラウザーのタイトルバーに表示される <title>FrontPage - PukiWiki</title> を作っている部分 104: $title = htmlspecialchars(strip_bracket($base)); ↓ 104: if (preg_match('/^(?:PukiWiki\/|CCCC\/)/', strip_bracket($base))) { 105: $title = htmlspecialchars(strip_bracket($base)); 106: } else { 107: $title = htmlspecialchars(end(preg_split('/\//', strip_bracket($base)))); 108: }
# lib/html.php 370行目 # ページ内の大見出し <h1 class="title"> ... </h1> (Backlinks for: ... へのリンク)を作っている部分 370: $s_page = htmlspecialchars($page); ↓ 370: if (preg_match('/^(?:PukiWiki\/|CCCC\/)/', $page)) { 371: $s_page = htmlspecialchars($page); 372: } else { 373: $s_page = htmlspecialchars(end(preg_split('/\//', $page))); 374: }
全体を表示するページをさらに追加する場合は '/^(?:PukiWiki\/|CCCC\/)/' → '/^(?:PukiWiki\/|CCCC\/|MORE\/)/' のようになります。
日本語を入れるときは '/^(?:PukiWiki\/|CCCC\/|' . preg_quote('ページ名/', '/') . ')/' といったようにpreg_quoteを使わないといけません。