複数Blogの構築が出来ないwordpressでは、カテゴリごとに、記事を分けて複数Blog的な使い方をするかと思うのですが、テンプレートタグは基本的に、全体に効いてしまうので、月別アーカイブ一覧などを表示させてもすべてのカテゴリの月別が表示されてしまいます。そこで、便利なプラグインが KWEBBLE です。
Archives for a category WordPress plugin
上記よりプラグインをダウンロードし、
1. プラグインフォルダへアップロード
2. 設定→kwebbleの設定からDisable canonical URLs.にチェックをつけて、オプションを更新。(これをしないとうまく表示されないことがあるらしいです。)
<ul>
<?php wp_get_archives('cat=3'); ?>
</ul>
と表示すれば、カテゴリID3の月別アーカイブが作成されます。複数カテゴリを取得し月別アーカイブを作成する場合は、下記のように表示したいカテゴリIDをコンマで区切ります。
<ul>
<?php wp_get_archives('cat=3,4'); ?>
</ul>
また月別&カテゴリ別の記事タイトルの一覧を取得する場合は、下記で取得できます。
<?php wp_get_archives('type=postbypost&limit=5&cat=3'); ?>
カテゴリID3の記事を5件表示する。
個人的には、MTよりWordPressのほうが好きなので、複数Blog使えるようになって欲しいな。CMS的に使用したり、様々なコンテンツを管理する場合は、MTのほうが長けてるな。プラグインやUIはWordPressのほうが、いいと思いますが。しかもフリーだし。w かなりお世話になってます。
ではでは。
wordpressでカテゴリごとに違うテンプレートを適応させたい場合。デフォルトのテンプレートcategory.phpに分けたいカテゴリのIDを追加するだけで作成されます。
カテゴリID = 1 = category-1.php
カテゴリID = 2 = category-2.php
すごく簡単ですね。ただこれで作成されるのは、各カテゴリの一覧画面のみで、各カテゴリの記事ページもテンプレートを分けたい場合は、single.phpも編集する必要があります。
<?php if (in_category('1')): ?>
カテゴリー1の時の出力
<?php elseif (in_category('2')): ?>
カテゴリー2の時の出力
<?php else: ?>
その他のカテゴリーの時の出力
<?php endif; ?>
カテゴリ事にsingle.phpのテンプレート自体を分ける場合は
<?php
$post = $wp_query->post;
if ( in_category('1') ) {
include(TEMPLATEPATH . '/single-1.php');
} elseif ( in_category('2') ) {
include(TEMPLATEPATH . '/single-2.php');
} else {
include(TEMPLATEPATH . '/single.php');
}
?>
と記述して各テンプレートを用意します。
wordpressも複数Blog使えるようになって欲しいなぁ。
MovableTypeをPHP化して使用する場合、出力されるファイルの属性がディレクトリは[777]、ファイルは[666]で出力される為、サーバーによっては、そのファイルを閲覧できない場合があります。エックスサーバーでは500エラーになり閲覧できなく、サーバー側の設定も変えれないとのことですが、mt-config.cgiに下記のソースを加えるだけで解決します。下記のソースを加えると、ディレクトリ[705]、ファイル[705]で出力されます。
ただし、もう既に出力されているファイルは手動で変更する必要があります。
DBUmask 0072
HTMLUmask 0072
UploadUmask 0072
DirUmask 0072
HTMLPerms 0705
UploadPerms 0705
でも何で、MTはデフォルトが[777][666]で出力されるようになっているんだろう。。
[qTranslate]
はなかなか便利なプラグインですが、header.phpやfooter.phpも言語ごとに切り替えたい場合
index.phpやheader.phpの中で言語ごとにif文などで切り分ければいいのですが、
その場合、現在、何の言語が選ばれているかを取得するには[qTranslate]内の下記の関数で
取得できます。
qtrans_getLanguage();
これで取得した言語ごとに切り分ければタイトルや、共通テンプレート内も言語ごとの
切り分けが可能になります。
$q_config = qtrans_getLanguage();
if($q_config == "ja") { echo '日本語のものを表示'; }
else if($q_config == "en") { echo '英語のものを表示'; }
else if($q_config == "fr") { echo 'フランス語のものを表示'; }
?>
その他、言語のコードはqtranslate.php内に記述されているので
そこで見ることができます。
qTranslateで簡単に他言語展開できますね。
wpでBlogやサイトを他言語化する際に便利なプラグイン[qTranslate]
使用方法は、[qTranslate]よりダウンロードし解凍したファイルをpluginフォルダへアップ。
その後、pluginを有効にし、設定画面より必要言語を追加します。
日本語に関してはそのままでは、管理画面が日本語にならないので、
languagesフォルダへja.moをコピーしてファイル名をja_JP.moに変更しアップすれば管理画面も日本語になり使用可能です。
記事投稿画面の上に、言語切り替えパネルができるなど便利。
出力は表示させたい部分へ
<?php qtrans_generateLanguageSelectCode("image"); ?>
と入力。<ul><li>形式で書き出されます。
テキストで表示したい場合は、上記ソースのimage→textに変更。
両方表示したい場合は、bothを入力。
プラグイン使用後、日付表示がおかしくなるようなので、
設定→Launguages→Advanced Settingsを開いてDate / Time Conversionを
3番目のUse strftime instead of date.にチェックを入れると解消されるらしい。。
ですが、なぜか僕の環境では改善しなかったので、
4番目のUse strftime instead of date and replace formats with the predefined formats for each language.に
チェックボックスを入れ、index.phpなどテンプレートファイルの日付表示部分の関数をthe_timeからthe_dateに変更。
これで、Launguages画面の各言語の設定で指定した日付表示に改善されました。
言語ごと分けられるのいいですね。
なかなか便利なプラグインです。
他プラグインとも相互性が強くなればもっとよくなりそうですが。
関連サイト:
qTranslate
GIMLET online F1 - qTranslate 導入メモ
saqoosha.net – WordPress でマルチリンガルなサイトを作るの巻
wpで記事内にたまーにPHPを書きたくなることがあります。
しかし、そのまま書いてしまうとコードのまま書き出されてしますのでrunphpというプラグインを
追加すると、記事内にPHPを投稿し呼び出すことができます。
使用方法は、下記サイトよりプラグインをダウンロード
pluginフォルダに追加後、pluginを有効に。
設定→投稿設定の 「:-) や
のような顔文字を画像に変換して表示する」の
チェックを外しておくのと、ユーザー→プロフィールのビジュアルエディタを使用しないに
チェックボックスを入れておく必要があります。
runphp