使用法

Top > Manual > Plugin > tag.inc.php > rev201
Table of Contents

書式

Tagging

Format

&tag(tag[,tag[,tag[,...]]]);

Example

&tag(PukiWiki,Plugin);
&tag(プラグイン);

Result

Tag: PukiWiki Plugin Tag: プラグイン

リンクは taglist プラグインへのリンクとなります。

注意: ^ と - は特別な意味を持つ文字なのでタグには使えません。ページリストの際に ^ は共通ページを(積集合 ∩ のイメージ)、- は差ページ(差集合のイメージ)をリストするのに使用します。


タグのリスト(タグクラウド)

タグのリストアップには tagclould プラグインを使用します。

Format

#tagcloud([オプション])

オプション

  • limit=数字
    • 表示最大件数の指定。デフォルトは全て。
  • related=タグ名
    • 関連タグのみを表示。デフォルトは全て。
  • cloud=off
    • タグクラウド表示ではなく、ただのリスト。デフォルトはタグクラウド表示

Example

#tagcloud(related=PukiWiki)

#tagcloud(related=PukiWiki,cloud=off)

タグ付きページのリスト

タグ付きページのリストを表示するには taglist プラグインを使用します*1

書式

#taglist([オプション])

デフォルトでは、全てのタグとタグ付けられたページをリストアップします。旧書式の #taglist(タグトークン[,オプション])書式も残してあります。

オプション

  • tag=タグトークン
    • タグ付けられたページをリスト。タグトークンを使用可能。
    • タグトークンとは、タグ名と ^、- で構成される文字列。タグ1^タグ2 とすることで、共通ページを(積集合 ∩ のイメージ)、タグ1-タグ2 とすることで差ページ(差集合のイメージ)の意味となる。
  • related=タグ
    • 関連タグに限定して、タグとタグ付けられたページをリストアップ。

Example

#taglist(tag=Plugin-Old)
#taglist(Plugin-Old)

#taglist(related=Plugin)

Configuration

タグクラウド CSS

タグクラウド機能を使用するなら以下の CSS をスキンに追加してください。

svn:plugin/tagcloud.css

FAQ

タグ付け時に何も表示してほしくない

Plugin/enull.inc.php を使用してください。

ページを削除してもタグは消えない?

PukiWiki の仕組み上、プラグインはページ参照時にしか起動できないためページが削除されてしまうとタグを更新できません。 ページを削除する前に &tag(); としてタグの削除をしてください。 もしくは、アクション型プラグインとして index.php?cmd=tag のようにアクセスするとキャッシュをクリーンアップできます。

PukiWiki 本体改造で乗りきる方法も用意してみました*2。 pukiwiki/lib/file.php の編集をします。 page_write 関数の末尾に

	log_write('update',$page);
+	if (exist_plugin('tag')) {
+		do_plugin_init('tag');
+		plugin_tag_write_after($page, $postdata, $notimestamp);
+	}

のように追加。あまりテストはしてません。

ページをリネームしても・・・

同様です。

rename プラグイン改造で乗りきる方法も用意してみました*3。 plugin_rename_proceed 関数に、以下を追加します。

              links_update($old);
              links_update($new);
          }
      }
+     if (exist_plugin('tag')) {
+         do_plugin_init('tag');
+         plugin_tag_rename_plugin($pages);
+     }
      $postdata = get_source(PLUGIN_RENAME_LOGPAGE);
      $postdata[] = '*' . $now . "\n";

あまりテストはしてません。

タグの置換はどうすれば

replaceplugin.inc.php を使用してみてください。

置換後、アクション型プラグインとして tag プラグインを起動し、タグキャッシュをクリーンアップしてください。

lsx プラグインの豊富な機能を使用したい

lsx.inc.php プラグインでも、

#lsx(tag=タグトークン)

のようにタグ付けされたページのリストができます。sort、contents、include など豊富な機能が使用可能です。

タグクラウドやタグ付け時に表示されるリンクのリンク先を lsx に変えたい場合は、tag.inc.php を開いて、

-$conf['listcmd'] = get_script_uri() . '?cmd=taglist&tag=';
+$conf['listcmd'] = get_script_uri() . '?cmd=lsx&tag=';

のように変更します。デフォルトで lsx の linkstr=title オプションを指定したい、などということがなければ、taglist のままで良いかと思います。

将来的には lsx と taglist は共通のライブラリを利用して同様の機能を使用できるようになる予定です。

Compatibility Check

Please join us to check compatibilities.

Compatible

Selection Vote
PHP4 2
PHP5 7
1.3.7 0
1.4.3 0
1.4.4 1
1.4.5_1 0
1.4.6 0
1.4.7 2
1.4.5plus-eucjp 0
1.4.6plus-u1-eucjp 0
1.4.6plus-u2-eucjp 0
1.4.5plus-u2-i18n 0
1.4.6plus-u1-i18n 0
1.4.6plus-u2-i18n 0
1.4.7plus-i18n 0
1.4.7plus-u2-i18n 2

Incompatible

Selection Vote
PHP4 0
PHP5 1
1.3.7 0
1.4.3 0
1.4.4 0
1.4.5_1 0
1.4.6 0
1.4.7 0
1.4.5plus-eucjp 0
1.4.6plus-u1-eucjp 0
1.4.6plus-u2-eucjp 0
1.4.5plus-u2-i18n 0
1.4.6plus-u1-i18n 0
1.4.6plus-u2-i18n 0
1.4.7plus-i18n 0
1.4.7plus-u2-i18n 0

*1 プラグイン名が、タグのリストプラグインと区別が付きにくいので少し悩んだのですが、taggedpagelist だと長すぎるということで古いバージョンの名前 taglist のままになっています
*2 PukiWiki がページ新規作成時、書き込み時、削除時にプラグインを作動させる仕組みを持っていれば改造すらせずに済むのですが
*3 rename プラグインがページ名変更時に他のプラグインを作動させる仕組みを持っていれば、もしくは PukiWiki がプラグイン用プラグインの枠組みを用意していてくれれば改造すらせずに済むのですが