wordpressプラグインの設定画面からのパスの指定方法
(1)home_url('/’) を使う
wordpress内では、home_url() が、現在のブログのホームURLを返し、任意の$pathを追加出来る引数を持つ。詳しくは上記リンクへ。
例:TSM_font-changer3.php (一部)
function TSM_font_changer_edit_setting() {
$css_uri = home_url('/');
echo <<<EOD
<div>
<h2>(1)新しくフォントファイルを追加する</h2>
<p>以下のページから、otfファイルと、woffファイルをアップロードしてください。</p>
<a href="{$css_uri}wp-content/plugins/TSM_font-changer3/form.html" target="_blank">こちらのリンク先でアップロード</a>
</div>
EOD;
(2)admin.phpからの相対パスを用いる。
wordpressのプラグイン管理画面は、xxxxx/wp-admin/admin.php?xxxxxx となっており、その影響か、なぜか、相対パスは、admin.phpからの相対パスを指定しなければならない。(CodeXのどこかに書いてあるのだろうが、これを理解するのに何か月悩んだことか、、、)
例:TSM_font-changer3.php (一部)
echo <<<EOD
<h2>(2)OTFフォント選択</h2>
EOD;
$dir = "../wp-content/plugins/TSM_font-changer3/fonts/";
$files = array();
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$files[] = $file;
}
closedir($dh);
}
echo <<<EOD
<form action="../wp-content/plugins/TSM_font-changer3/select.php" method="post">
EOD;
$sampleSelectBox = "<select name=\"selectBoxName\">\n";
for ( $i = 0; $i < count( $files ); $i++ ) {
$sampleSelectBox .= "\t<option value=\"{$files[$i]}\">{$files[$i]}</option>\n";
}
$sampleSelectBox .= "</select>\n";
echo "{$sampleSelectBox}";
echo <<<EOD
<p><input type="submit" value="決定" /></p></form>
EOD;
TSM_font-changer3/fonts/ フォルダの中のファイル群を $files 配列に格納し、
ドロップダウンリストに表示する。
セレクトされた selectBoxName は、TSM_font-changer3/ フォルダ内の、
select.php
で処理される。
●ソース全体は、
http://twosquirrel.mints.ne.jp/?page_id=140
から、TSM_font-changer3(Ver.3.0.2) をダウンロードしてください。


ディスカッション
コメント一覧
まだ、コメントがありません