MT5(4.2)からコミュニティソリューションなるものが統合されて、MT5ではコミュニティブログや掲示板をテンプレートから選んでやるとそれが使えるようになるとのこと。
その前になぜか自分の環境で新規にブログを作成するも、「ヘッダー」「フッター」がモジュールテンプレートにないではないかっ!!!!(喝じゃ
調べてみると、なぜかインストール時に日本語選んだのに英語版のテンプレートがインストールされたせいではないかと思う。(ブログ作成時は日本語テンプレートで作成したから、呼び出せなかったのかな??)
ちなみにロリポです。
それはともかく、システムのテンプレート内に英語ですが「Sign in」(←サインインテンプレート)があったので見てみた。
デフォルトだとややこしくJavascriptで書かれていて最初はチンプンカンプン。
とりあえずそのままコピペしてウェブサイトの方にもっていったが何も反応せず。
ログとしてやってみたポイントは以下の通り
システムテンプレートのheader(ヘッダー)内を確認し、必要だと思う部分をコピー、ウェブサイト内テンプレートにペースト
GlobalJavaScript(英語の場合)がシステムテンプレートにあるので、それをヘッダー内にインクルードする。
場合によると思いますが、ウェブサイト内に不要なMTVarがあると競合してCSSとか読み込んでしまうので慎重に確認しながら整理してください。
Sign in(サインイン)テンプレートを確認しコピーして、該当テンプレートにペースト。ほとんどJavascriptですが、空のdivタグが重要で、
>div id="signin-widget-content" class="widget-content">>/div>
この中にJavascript内の項目が読み込まれる形になっています。
当然divでなくても、pでもliでもidが重要なので大丈夫です。
また、idがすでにデザイン上使われてる場合は、
Javascript内の
var el = document.getElementById('signin-widget-content');
の部分の
signin-widget-contentを任意に変えてやれば対応できます。
これでとりあえずは機能しますが、例えばリンクする文字部分を画像にする場合はJavascript内の
content = '<a href="javascript:void(0)" onclick="return mtSignInOnClick(\'signin-widget-content\')">Sign In</a>';
等の記述がよくみるとありますので、HTMLの知識があれば簡単に変えられますよね?(自分はわかるから説明省)
改めて見ると結構大変かも。
MultiBlogタグはあくまでエントリー周りにしか効かないらしい。
ウェブサイトにブログのカテゴリを表示させたい場合はMTBlogsタグで囲ってあげるとうまくいきました。
使い方はMultiBlogと同じです。参考→タグリファレンス
となると、MTBlogsを使った方が使い勝手がいいということかな?
ただ、MultiBlogのほうにはモディファイアがたくさんあるので、例えばカスタムフィールドとかで分岐させたい場合はMultiBlogじゃないと制御しにくいかも。でも、MTEntriesタグでもそこらへんいろいろできるっぽいので(MT5)、MTBlogs使ったも問題なさそうだ。
次はコミュニティ関係をせめて行こうと思います。
Wordpress(以下WP)も最近よく使っていますが、正直デフォルトのテンプレートから必要な部分だけを使っていたので、詳しくは知りませんでしたが、いろいろ調べていくとWPも使いやすいかなと思います。
WPで一番快適なのは、MTに比べ再構築に時間がかからないことです。MTに比べ少しコードは難解でしたが、すぐに慣れます。
今回一番悩んだのが、記事一覧の表示でした。
<?php wp_get_archives('type=postbypost'); ?>
これで記事一覧が取得できるんですね。
type=postbypostが個別記事のアーカイブ取得...要は投稿されてる記事一覧の取得ということでしょうか。typeは他に、「monthly(月別ごと)」「weekly(週別ごと)」「daily(日別ごと)」と取得できます。
<?php wp_get_archives('type=postbypost&limit=10'); ?>
limit指定をすると上の場合「10件まで」表示するようにできます。
<?php wp_get_archives('type=postbypost&limit=10&format=html'); ?>
formatはメニューの表示形式を変更するためのもので、通常は「html(liでマークアップ)」になります。
「option(プルダウン形式)」「link(headにあるlink属性)」「custom(マークアップ無し)」が選べます。htmlとcustomの場合は、「before・after」の指定ができます。
<?php wp_get_archives('type=postbypost&limit=10&format=custom&before=<p>&after=</p>'); ?>
上記のようにマークアップを変える時に便利です。
またtypeがmonthlyのときだけ記事数の表示も可能です。
<?php wp_get_archives('type=monthly&limit=10&show_post_count=TRUE'); ?>
show_post_countを「TRUE」にすると表示できます。
MT5は実に使える!
MT5はMultiBlogが鍵ですね。
ウェブサイトではブログやカテゴリは設定できないので、その子としてブログを作ります。その時にMultiBlogでウェブサイトにも反映できます。しかもブログを分ければ乱立せず、このブログには更新情報、このブログにはフォトブックなど用途によって使い分けられ、なおかつテンプレートもブログごとに設定しやすくなるので楽です。もちろんシステムに共通のグローバルテンプレートを設定すればウェブサイト、各ブログにもインクルードできますから、便利です。
もう一つカスタムフィールドも便利です。が、例えば複数あるブログを読み込むときに、MTMultiBlogタグのモディファイアでblog_idsがあり、ここにブログIDをまとめて記述するとエントリー一覧が表示されます。(モディファイアには他にmode="context"を設定すると複数のブログでもまとめてエントリーを出力できます。)
その中にMTEntriesを書いたんですが...カスタムフィールドでチェックボックスを設けた部分が反映されません。MTIf tag=""で設定すると真っ白。
MTEntriesのモディファイアにfield:カスタムフィールドの名前="1"を追加すると解消できました。
恐らく最新の記事から拾ってきて古いチェックが入った記事が入らなかった(?)のかなと思います。
これでチェックの入った記事だけが表示できて、必要ないときはチェックを外して...ということができました。告知とか期間限定に使えると思います。
MT5触り始めていろいろ挑戦中ですが、ウェブサイト(親)〜ブログ(子)的な概念があって、そういえば親であるウェブサイトのURLってブログでどう呼ぶのかと思い調べていたら結構ややこしい書き方をしなければならないことがわかりました。
こちらのサイトではそのややこしいやり方をスッキリさせる方法が書いてあります。
&glt;mt:SetVarBlock name="website_url"&grt;&gltmt:BlogParentWebsite&grt;&glt;$mt:WebsiteURL$&grt;
&glt;/mt:BlogParentWebsite&grt;&glt;/mt:SetVarBlock&grt;
上記でテンプレートの一番上にでも書いて上げて、後は
&glt;mt:GetVar name="website_url"&grt;
で呼び出してあげる方法です。
はブログの元URLになってしまうので、例えばウェブサイトからの階層でグロバールメニューとか他のブログにまたがってたりすると修正する時面倒なのが解消されます。
それとこちらではプラグインも紹介されています。
このプラグインはテンプレートを呼び出す際のネックを解消してくれます。
忘れないようにここでメモ。(02も多分ある)