↑URLはダミーです
やったことがないので具体的なソースコードなどは提示できませんが、MTはHTMLファイルの変わりにPHPファイルを吐き出すことも可能ですので、たとえば特定のカテゴリだけにパスワードを掛けたいのであれば、カテゴリ用のテンプレートの頭に下記のように認証用のPHPを埋め込んであげればいけるのではないかと思います。
if ( "認証を掛けたいカテゴリ名" == "そのページのカテゴリ名"){
認証用関数();
}
特定のカテゴリーに対して認証を行う方法です。かなり手間な方法かと思いますが、もし宜しかったらご覧下さい。「管理用」というカテゴリーに対して「admin」と「123」でログインする方法です。
まず、全てのページをPHPにて出力するよう設定し、テンプレート→アーカイブ→「カテゴリー・アーカイブ」と「エントリー・アーカイブ」にて、先頭(<!DOCTYPE…)の前に以下のソースを追加します。
<?php
if (<$MTCategoryLabel$> == "管理用"){
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="My Private Stuff"');
header('HTTP/1.0 401 Unauthorized');
exit;
} else if (isset($PHP_AUTH_USER)) {
if (($PHP_AUTH_USER != "admin") || ($PHP_AUTH_PW != "123"))
{
header('WWW-Authenticate: Basic realm="My Private Stuff"');
header('HTTP/1.0 401 Unauthorized');
exit;
}
}
}
?>
続いて記事を一覧に表示しないようにする必要がありますので「日付アーカイブ」と「メインページ」にて、<MTEntries> の直後に以下のソースを追加します。
<?PHP if (<$MTCategoryLabel$> != "管理用"){ ?>
続いて </MTEntries> の直前に以下のソースを追加します。
<?PHP } ?>
見かけ上はこれでOKです。あとはRSSやAtomを書き出さないように設定にする必要がありあります。もしも書き出したい場合は、これらの拡張子もPHPにして、
<?PHP if (<$MTCategoryLabel$> != "管理用"){ ?>と<?PHP } ?>を追加すればOKです。
実行結果は以下のようになります。
ありがとうございます!!
そのまま使えそうですね.
この方式で完全にニーズに答える事ができそうです!
ただ,MTのプラグインで解決することができれば,それにこした事がないので,もうしばらく解答は募集します.ありがとうございます!!
ありがとうございます.phpにするアイデアというのは思い浮かびませんでした.
ただ,具体的な関数のスクリプトを含めた解答がいただければと思います.