タグ「MovableType」が付けられているもの

バリューサーバーのcronでMovabletypeの再構築を自動化できない

昨日はバリューサーバーでMovabletypeの再構築を行うスクリプトの動作を確認できたので、)あとはcronにそのスクリプトを登録し、毎日自動的に再構築をしようとコントロールパネルの「CRONジョブの設定・編集」に登録しました。

ところが実行されていない!?あれ??なんで??

ヘテムルの時は実行が成功したのか、エラーが出ているのかメールが届いていたのですが、メールも届かず、cronが動いているのかどうなのか、さっぱりわかりません。サポートも期待できないので、自己解決するためにいろいろ調べました。

crondの動作状況を調べる

cronを使用するためにcrondというやつが動いていないといけないみたいで、Tera Termを使ってレンタルサーバーにSSHで接続し、以下のコマンドで調べます。

# /etc/rc.d/init.d/crond status

すると、

crond (pid  *****) is running...

と返ってきたので、どうやらcronは動いているみたいです。

もし、cronが動いていなかったら

/etc/rc.d/init.d/crond start
再起動の場合は
/etc/rc.d/init.d/crond restart

crontab -lでcronジョブの登録状況を調べる

SSHで以下のコマンドを打つ

crontab -l

すると「CRONジョブの設定・編集」に登録した内容が表示されました。

ちゃんと登録されているみたいです。

じゃあなんで動かない!?

昨日はSSHからcronで登録したファイルでちゃんとrebuild-pagesを実行することができたのになんで?まだ何かエラーがあるの?

とういうことで、cronで登録のファイルが実行されたときにどうなっているのかを知るために、今度はエラーメールが届くような方法がないか探したところcrontab -ecrontab -lで表示されたリストにMAILTO="[email protected]"と宛先を入れればいいようです。(※contab -rと打つとジョブが削除されますので隣同志のerを打ち間違えないように注意)

crontab -eでMAILTOを追加する

crontab -e

と打つとviエディタが起動し、crontab -lで表示された内容が出てくるので、一番上の行にメールの宛先を入力します。

ただし、Linuxに慣れている方はご存知だとおもいますが、viエディタの操作は普通に文字を入力するようにできませんので注意。

ちなみにTera Termでは以下できました。

  1. iを押し入力モードにする
  2. カーソルで移動して最初の行を改行し、そこにMAILTO="[email protected]"と入力
  3. ESCを押して入力モードから出る
  4. :wq と打つと保存して終了

そして、ちゃんと保存できているかはcrontab -lで確認できます。

cronを実行してみる

バリューサーバーのコントロールパネルの「CRONジョブの設定・編集」に2分後の時刻を設定してみましたが、設定の反映に1時間程度かかるようで、待っていられないので、SSHからcrontab -eで2~3分後の時間を設定してみました。

すると、メールキター!!でもエラー!!

BEGIN failed--compilation aborted at /virtual/user-dir/bin/lib/perl5/Web/Scraper.pm line 10.
Compilation failed in require at ./tools/rebuild-pages line 14.
BEGIN failed--compilation aborted at ./tools/rebuild-pages line 14.

/Web/Scraperの10行目を見る

use HTML::TreeBuilder::XPath;
とある。ですが、HTML::TreeBuilder::XPathはインストールしてやったはず...。もしかして、HTML::TreeBuilder::XPathがどこにあるかわからないよいう意味でパスを入れてやればいいのかな?ということで、パスを挿入。
use lib ("/virtual/user-dir/perl5/lib/perl5");
use HTML::TreeBuilder::XPath;

rebuild-pagesの14行目を見る

/mt/tools/の中にあるrebuild-pagesを開くと

use Web::Scraper;

とある。前回、これもパスを追加して対策したはず...。Web::ScraperHTML::TreeBuilder::XPathがないと動かない。ここにもHTML::TreeBuilder::XPathのパスがいるのかな?何故かWeb::ScraperHTML::TreeBuilder::XPathの保存されている場所がそれぞれ違う(多分インストールをミスった)。

ということで、rebuild-pagesHTML::TreeBuilder::XPathのパスを追加。

#追加前
use lib ("$FindBin::Bin/../lib", "$FindBin::Bin/../extlib", "/virtual/user-dir/bin/lib/perl5");

#追加後
use lib ("$FindBin::Bin/../lib", "$FindBin::Bin/../extlib", "/virtual/user-dir/bin/lib/perl5", "/virtual/user-dir/perl5/lib/perl5");

そしてもう一度cron実行

キター!!メールにsuccessの文字

rebuilding (星屋工作室ブログ ...
Individual built success.

無事、毎日cronでMovabletypeの再構築が自動化されました。

ただ、バリューサーバーは3分以上かかるスクリプトはダメみたいなので、全部の再構築をするのに時間が足りないため、インデックスやアーカイブページの再構築を個別に行うよう、cronジョブを複数に分けました。また、複数のジョブの間隔は1時間空けないといけないみたいなので、1時間5分間間隔で連続してcronを実行するようしました。

 

速くて安いサーバーないかな~なんてネットで検索してたらレンタルサーバーの比較をしているページ(http://rs-hikaku.com/)を見つけました。

速くて安いのなら乗り換えようかとバリューサーバー(ValueServer)の10日間のお試しで使ってみた。けどヘテムル(heteml)で動いていたものが動かない...。

cronに登録してMovabletypeの再構築をrebuild-pagesで自動的に毎日行っているのですが、以前の記事で書いた内容でヘテムル(heteml)では動いていたのにバリューサーバー(ValueServer)では動かない。

でも動かないままあきらめるのも嫌なので動くまでやってやろうと以下の事を追加で行い動かすことができました。

SSHでrebuild-pagesを実行したらエラー

まず動かない原因を探るためTera Termをインストールして、バリューサーバー(ValueServer)のサーバーにSSHでログインし、rebuild-pagesを実行してみます。

/usr/bin/perl /virtual/user-dir/public_html/mt/tools/rebuild-pages

rebuild-pagesを実行してみたところ

BEGIN failed--compilation aborted at /virtual/user-dir/public_html/mt/tools/rebuild-pages line 14.

というエラー。どうやらcronの設定が悪いのではなく、スクリプトでエラーが出ているようです。

/mt/tools/にあるrebuiled-pagesを開いて14行目を見ると「use Web::Scraper;」とありました。PerlモジュールのWeb::Scraperで引っ掛かっているようで、どのフォルダーを探してもWeb::Scraperが見当たらないのでエラーとなっているようです。

Web::Scraperを入れる

PerlモジュールのWeb::Scraperをどうやって入手すればいいのかわからなかったのですが、以下のサイトを参考にSSHでbinというディレクトリを作ってWeb::ScraperをインストールするためのcpanmWeb::Scraperに必要なHTML::TreeBuilder::XPathをそれぞれインストールしました。

cpanmを/virtual/user-dir/binにインストール

% cd /virtual/user-dir
% mkdir bin
% cd bin
% curl -LO http://xrl.us/cpanm
% chmod +x cpanm

Web::ScraperとHTML::TreeBuilder::XPathを/virtual/user-dir/binにインストール

% cd /virtual/user-dir
% cpanm -l bin Web::Scraper
% cpanm -l bin HTML::TreeBuilder::XPath

これで、/virtual/user-dir/bin/lib/perl5/Web/Scraperができあがりました。

rebuiled-pagesにパスを追加

rebuiled-pagesの8行目あたりにPerlモジュールの参照先を指定する部分があります。ここにはWeb::Scraperのある場(/virtual/user-dir/bin/lib/perl5)が指定されていませんので追加します。

#編集前
use lib ("$FindBin::Bin/../lib", "$FindBin::Bin/../extlib");
#編集後 use lib ("$FindBin::Bin/../lib", "$FindBin::Bin/../extlib", "/virtual/user-dir/bin/lib/perl5");
LWP::UserAgent::Localのあるディレクトリ(/mt/lib/)または/mt/extlib/にWeb::Scraperをインストールしておけば、これは不要だったかもしれませんがあまりSSHになれていないので、変なことにならないようここは参考通りにしておきます。

最後にlocal.pmのパスを修正

/virtual/user-dir/public_html/mt/lib/LWP/UserAgent/Local.pmの".$script_name""/virtual/user-dir/public_html/mt/$script_name"に修正します。

#88行目あたり
#修正前
my $pid = open2( \*RESPONSE, \*REQUEST, "./$script_name" ) #修正後 my $pid = open2( \*RESPONSE, \*REQUEST, "/virtual/user-dir/public_html/mt/$script_name" )
#94行目あたり
#修正前
open RESPONSE, "./$script_name|" or die "Couldn't spawn $script_name";

#修正後
open RESPONSE, "/virtual/user-dir/public_html/mt/$script_name|" or die "Couldn't spawn $script_name";

できた!

それぞれ修正したファイルをアップロードして、パーミッションも700にして、再度SSHで

/usr/bin/perl /virtual/user-dir/public_html/mt/tools/rebuild-pages

と打ってrebuiled-pagesを実行したらキター!!

ってことで一件落着。

【追記】これでcronもうまくいくはずだったのですが、うまくいかず以下のページで解決。

MovableType4~5はバージョンごとにレンダリング方法が異なるInternetExploreのバージョン9以上ではブログ記事が入力できないとかメニューが表示できないなど正しく操作できない部分があるようです。(MT6はIE9以降でも動くようです。)

対処方法は簡単な順で以下の方法がありあます。

その1、ChromeなどIE以外のブラウザを使う。

これが一番手っ取り早いのですが、自分以外のユーザーやChromeがインストールされていないパソコンでMTの編集を行うときに困ります。

その2、IEの互換表示設定にURLを登録する

InternetExploreの歯車のメニューの互換表示設定にURLを追加すれば、登録されたURLを表示するときは常に互換表示となります。

その3、メタタグを管理画面のテンプレートに埋め込む

MT設置ディレクトリ内の/tmpl/cms/include/header.tmplを開いて<head>~</head>に以下のタグを埋め込みます。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>

これで、どのパソコンであろうとIEで管理画面にアクセスしたときはIE7の互換表示となり、管理画面を操作できます。

投稿記事内の画像を使って、アクセスランキングにサムネイル画像を表示するために先日の投稿の方法とその他のサンプルのソースをかき集めてどうにかできたのでメモ。

MTに画像を登録していればもっと簡単にできるようなのですが、僕はムーバブルタイプで画像を使うとき、IMGタグを直接書いています。どうもMTのアイテムとして画像を登録するやり方が苦手なんです。画像の遅延表示やLightboxとか使うのに、あとでソースを修正することが多く、最初から手打ち登録するほうが気分的に安心なんです。こんな手間をかけなくてもプラグインとかありそうですが...。

<MTIf tag="BlogEntryCount">
<MTEntries sort_by="accessed_count" sort_order="descend" limit="5">
<mt:EntriesHeader>
<div class="widget-recent-entries widget-archives widget">
<h3 class="widget-header">アクセスランキング</h3>
<div class="widget-content">
<ul id="access-lanking">
</mt:EntriesHeader>
<$mt:setvar name="rank" value="1" op="++"$>
<MTSetVarBlock name="GetImageURL"> <MTEntryBody regex_replace="/<[^i].*?>|<i[^m]*?>|<iframe.*?>|<input.*?>|<ins.*?>|<isindex.*?>|\s/g","" regex_replace='/(.*?src=")(.*?)(".*)/g','$2' regex_replace='/^[^\.\/h].*/g','none'> </MTSetVarBlock>
<li>
<MTIf name="GetImageURL" like="none">
<a href="<$MTEntryPermalink$>"><img src="<$mt:SupportDirectoryURL with_domain="1" encode_html="1"$>theme_static/rainier/img/siteicon-sample.png" width="60" height="60" alt="<$MTEntryTitle$>" /></a>
<MTElse>
<a href="<$MTEntryPermalink$>"><img src="<$MTGetVar name="GetImageURL"$>" width="60" height="60" alt="<$MTEntryTitle$>" /></a>
</MTIf>
<a href="<$MTEntryPermalink$>"><p class="entry-title"><$MTEntryTitle trim_to="43+..."$></p></a>
</li>
<mt:EntriesFooter>
</ul>
</div>
</div>
</mt:EntriesFooter>
</MTEntries>
</MTIf>

(ランキング表示にAccess Counterというプラグインを使っていることが前提のソースです。)

まず、正規表現を使ってEntryBody(記事内)のソースからIMGタグのsrcにある画像パスを抜き出してGetImageURLという変数に代入します。もし、画像がなかったらnoneという文字を代入します。

<MTSetVarBlock name="GetImageURL">
   <MTEntryBody regex_replace="/<[^i].*?>|<i[^m]*?>|<iframe.*?>|<input.*?>|<ins.*?>|<isindex.*?>|\s/g","" regex_replace='/(.*?src=")(.*?)(".*)/g','$2' regex_replace='/^[^\.\/h].*/g','none'>
</MTSetVarBlock>

アクセスランキング表示の際、画像がなければ代替画像を表示して、あれば GetImageURLに入っている画像パスを使って表示します。

<MTIf name="GetImageURL" like="none">
<a href="<$MTEntryPermalink$>"><img src="<$mt:SupportDirectoryURL with_domain="1" encode_html="1"$>theme_static/rainier/img/siteicon-sample.png" width="60" height="60" alt="<$MTEntryTitle$>" /></a> <MTElse>
<a href="<$MTEntryPermalink$>"><img src="<$MTGetVar name="GetImageURL"$>" width="60" height="60" alt="<$MTEntryTitle$>" /></a>
</MTIf>

この方法にMTの画像アイテムがあればそれを優先するようなことも加えたいのですが、とりあえず今回はここまで。

参考ページ

現在、heteml(ヘテムル)のサーバーでMovabletype6(MT6)を使っています。

ムーバブルタイプの再構築を毎日決まった時間に再構築できないかいろいろ調べていたところ、mt-rebuild.plを使用した方法がたくさん検索でヒットしました。ところが現在はファイルを入手できない状況になっているようで、別の方法を検討することにしました。そこでMovabletypeに元々あるrebuid-pagesというファイルを使った方法がありましたのでメモ。

cronによる再構築のスケジュールを設定してみました。cronの設定までに以下のファイルが必要です。

rebuild-pages
(MT6に元々ある再構築用スクリプト用のファイル)
mt.sh
(cronに登録するrebuild-pagesを実行させるためのもの)
Local.pm
(MTになくrebuild-pagesに必要なものでテキストエディタで作成)

 

rebuild-pagesの設定

rebuild-pagesというファイルはmt/tool/にあります。このファイルを開いて再構築に必要な項目を入力します。

### Parses options.
my @blog_ids;
my @types;
my $username    = 'MTのユーザー名';
my $password    = 'MTのパスワード';
my $script_path = '/mt/';
my $hostname    = 'hoshiya.biz'; ←ホスト名(ドメイン名)
my $silent      = 0;
my $usage       = 0;
my $elapse      = 0;

rebuild-pagesの最後の方のソースを見ればわかりますが、オプションを加えることによりblog_IDやカテゴリページやインデックスページのみを再構築するなど、細かく指定することもできるようです。

 

mt.shを用意

テキストエディタで以下のソースをmt.shと名前を付けて保存します。(ここでは仮にmt.shとしていますが、.shという拡張子であれば名前はなんでもいいです。)

#!/bin/sh

cd /home/sites/heteml/users***/m/h/0/ヘテムルのユーザー名/web/hoshiya.biz/mt/
/usr/bin/perl ./tools/rebuild-pages

exit

リビルドに必要な項目はrebuild-pagesで設定しなくても、コマンドで設定することもできるようです。

/usr/bin/perl ./tools/rebuild-pages --user=MTのユーザー名 --pass=MTのパスワード

その他、指定できるパラメータは以下のページが参考になります。

 

mt.shをアップロード

/home/sites/heteml/users***/m/h/0/ヘテムルのユーザー名/にアップロードします。パーミッションは700ヘテムルの場合)にします。

違うディレクトリにアップロードすると以下のようなエラーメールが届いて動きませんでした。

/bin/sh: /home/sites/heteml/users/m/h/0/****/web/hoshiya.biz/mt.sh: /bin/sh
: bad interpreter: No such file or directory

 

Local.pmを作成とアップロード

rebuild-pagesでLWP::UserAgent::Localというモジュールが必要らしいのですが、標準ではないのでmt/lib/の中にLWP/UserAgent/Local.pmを作ります。

LWP/UserAgent/Local.pm

Local.pmのソースは「movabletype/t/lib/LWP/UserAgent/Local.pm at master · movabletype/movabletype · GitHub」を使いました。

Local.pmの2行目あたりに以下を追記します。

package LWP::UserAgent::Local;

use lib qw(../lib ../extlib); ←これ

または

use lib qw(
    /home/sites/heteml/users***/m/h/0/ヘテムルのユーザー名/web/hoshiya.biz/web/mt/lib
    /home/sites/heteml/users***/m/h/0/ヘテムルのユーザー名/web/hoshiya.biz/web/mt/extlib
);

use LWP::UserAgent;
use base 'LWP::UserAgent';
use IPC::Open2 'open2';

このパスの指定がないとうまく動きませんでした。

 

cronを設定

ヘテムルのコントロールパネルのcron設定のページでスケジュールで登録します。毎日朝4:00に再構築するように設定して終了。

ヘテムル-cronについて

無事、毎日4時に再構築してくれています。

ヘテムル以外のサーバーでこれでもダメだった場合は以下のページのことも合わせてやってみてください。

参考にしたページ

ムーバブルタイプの記事一覧にサムネイルを付けたいけど、MT上の画像登録機能を使わず、直接IMGタグで画像を指定していう記事ばかりなのでいくら<$mt:AssetThumbnailURL$>で呼び出しても画像が表示されません。

そこで、記事内のHTMLからIMGタグ内にある画像URLを正規表現で抜き出す方法がないかと探したらブログ記事本文中の最初のimgのURLを取得する | かたつむりくんのWWWにありました。

<img src="<mt:EntryBody regex_replace="/<[^i].*?>|<i[^m]*?>|<iframe.*?>|<input.*?>|<ins.*?>|<isindex.*?>|\s/g","" regex_replace='/(.*?src=")(.*?)(".*)/g','$2' regex_replace="/^[^\.\/].*/g","">" />

正規表現は苦手なので、こういうサンプルがないとわけがわかりません。

Access Counterというプラグインを使って人気の記事リストを表示する方法を書き留めておきます。アクセスの高い順に表示してくれます。

プラグインをmt/pluginsにアップロードしてAccessCounter.cgi のパーミッションを755にしてください。(ヘテムルの場合700)

プラグインのサイトにも説明がありますが、管理画面にアクセスするとデータベースの再構築を促されますので、指示にしたがって進めてください。

そして、以下のコードで「アクセスランキング」というウィジェットを作成。ちなみに「limit="10"」は上位10件を指定しているところ。

<mt:If tag="BlogEntryCount">
    <mt:Entries sort_by="accessed_count" sort_order="descend" limit="10">
        <mt:EntriesHeader>
<div class="widget-recent-entries widget-archives widget">
    <h3 class="widget-header">アクセスランキング</h3>
    <div class="widget-content">
        <ul class="widget-list">
        </mt:EntriesHeader>
            <$mt:setvar name="rank" value="1" op="++"$>
            <li class="widget-list-item"><a href="<$mt:EntryPermalink$>">#<$mt:var name="rank"$> <$mt:EntryTitle$></a></li>
        <mt:EntriesFooter>
        </ul>
    </div>
</div>
        </mt:EntriesFooter>
    </mt:Entries>
</mt:If>

参考にサムネイル画像付きのリストにしたい場合はこんな感じ。

<mt:If tag="BlogEntryCount">
<mt:Entries sort\_by="accessed\_count" sort\_order="descend" limit="5">
<mt:EntriesHeader>
<div class="widget-recent-entries widget-archives widget">
<h3 class="widget-header">人気記事</h3>
<div class="widget-content">
<ul id="access-lanking">
</mt:EntriesHeader>
<$mt:setvar name="rank" value="1" op="++"$>
<li><a href="<$MTEntryPermalink$>">
<img src="<mt:EntryAssets type="image" limit="1"><$mt:AssetThumbnailURL height="60" square="1" encode_html="1"$><mt:Else><mt:Assets type="image" tag="@SITE_ICON" limit="1"><$mt:AssetThumbnailURL height="60" square="1" encode_html="1"$><mt:Else><$mt:SupportDirectoryURL with_domain="1" encode_html="1"$>theme_static/rainier/img/siteicon-sample.png</mt:Assets></mt:EntryAssets>" width="60" height="60" alt="<$MTEntryTitle$>" />
</a>
<a href="<$MTEntryPermalink$>"><p class="entry-title"><$MTEntryTitle trim_to="43+..."$></p></a></li>
<mt:EntriesFooter>
</ul>
</div>
</div>
</mt:EntriesFooter>
</mt:Entries>
</mt:If>

カテゴリページや月間ページ別のランキング表示もできるようです。(以下ページが参考になります)

ムーバブルタイプで関連記事一覧を表示する方法

TagSupplementalsというプラグインを使って関連記事リストを表示する方法を書き留めておきます。このプラグインはOgawa::Memorandaが提供していて、タグに関連する記事を表示することが可能です。

TagSupplementalsmt/pluginsにアップロードするだけで準備は完了です。

そして、以下のコードで「関連記事」というテンプレートモジュールを作成。ちなみにlastn="5"は5件の表示を指定しているところ。

<div class="widget">
<h2 class="widget-header">関連記事</h2>
<ul class="widget-list">
<MTRelatedEntries lastn="5">
<li class="widget-list-item">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
</li>
</MTRelatedEntries>
</ul>
</div>

あとはテンプレート内で表示したい箇所に以下のMTタグを記載すればOK。

<$mt:Include module="関連記事"$>

 

参考にサムネイル画像付きのリストにしたい場合はこんな感じ。

<div class="widget">
<h2 class="widget-header">関連記事</h2>
<ul class="widget-list">
<MTRelatedEntries lastn="5">
<li class="widget-list-item">
<a href="<$MTEntryPermalink$>">
<img src="<mt:EntryAssets type="image" limit="1">
<$mt:AssetThumbnailURL height="60" square="1" encode_html="1"$>
<mt:Else>
<mt:Assets type="image" tag="@SITE_ICON" limit="1">
<$mt:AssetThumbnailURL height="60" square="1" encode_html="1"$>
<mt:Else>
<$mt:SupportDirectoryURL with_domain="1" encode_html="1"$>theme_static/rainier/img/siteicon-sample.png
</mt:Assets>
</mt:EntryAssets>
" width="60" height="60" alt="<$MTEntryTitle$>" />
</a>
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
</li>
</MTRelatedEntries>
</ul>
</div>

ムーバブルタイプで投稿記事や関連記事の一覧を表示するときなどで、1行の高さが決まっていて指定文字数文だけ表示したい場合は以下で簡単にできます。

<$MTEntryTitle trim_to="30"$>

30文字だけ表示したい場合「trim_to="30"」を加えればいいだけ。

行末に「...」を付けたい場合

<$MTEntryTitle trim_to="30+..."$>

trim_to="30+..."とするだけ。超簡単です。

レンタルサーバーはロリポップで、

Movable Type 4をMT5にアップグレードした。

ついでに

  • ディレクトリ: ルート → ルート/blog
  • 拡張子: .html → .php

に変更した。

 

しかし、前のブログにアクセスがあるため、以下の選択肢を考えた。

  • 古いブログ(MT4)と新しいブログ(MT5)と共存させる。
  • 古いブログ(MT4)にアクセスがあったら、新しいブログ(MT5)に転送させる。

結果、新しいブログに転送させるほうが効率が良いので、

.htaccessに正規表現で以下の事を加えて実現できた。

URLのRewriteというApatchの機能らしい。

 

http://***.com/2010にアクセスがあったら、

拡張子を.htmlから.phpに変更して、

http://***.com/blog/2010/***.phpにリダイレクトする。

 RewriteEngine On
 RewriteCond %{REQUEST_URI} ^/2010.*$
 RewriteRule ^(.*)\.html$ /$1.php [NC,R]
 RewriteRule ^2010(.*)$ /blog/2010$1 [R,L]


とりあえずできたものの、

正規表現というものを使ったことがなく、

理解するまでには時間がかかりそうです。

 

フォルダごとにこのルールを設定するのは大変なので、

課題として、複数のフォルダに対して一度にルールを適用できるようしたいと思います。

 

参考ページ

会社で使用しているMovable Type version 4.1なのですが、

標準の検索窓に検索語を入れて検索ボタンを押すと

 

「検索結果の作成に失敗しました。」

 

と表示されます。

これを何とか解決したちところですが、

原因がわからないため、

いろいろ検索したところ有力情報が見つかりました。

 

MovableType3→4移行時のツボ~その1. 検索フォーム編 - 道具眼日誌:古田-私的記録
http://do-gugan.com/~furuta/archives/2008/02/movabletype341.html
MovableType3→4移行時のツボ~その1. 検索フォーム編 - 道具眼日誌:古田-私的記録

 

上記のページを見ると原因は

検索結果を表示するテンプレート「検索結果」に

インクルードされている以下のモジュールが見当たらず、

ちゃんとリンクしていないことが原因でした。

 

  • ヘッダー
  • ブログ記事の概要
  • フッター

 

会社のホームページ(ブログ)の場合

このモジュールがすべて名前の変更がされており、

削除されていること同然の状態になっておりました。

モジュール名を変更したところ正常に動作しました。

 

  • Movable Typeでブログを構築している
  • 同じサイト内に複数のMovable Typeのブログがある
  • 「ブログ1」のページに「ブログ2」の「最近の記事」を表示したい

 

そんなときに使えるMovable Typeのプラグイン「MultiBlog」

標準のプラグインで別途インストールする必要がなく

簡単な設定を行い、表示した部分にタグを埋め込むだけ

 

「ツール」メニューの中に「プラグイン」がある

その中に「MultiBlog」がある

 

「設定」で「再構築トリガー」に「ブログ2」が更新されたらインデックスを再構築するように設定し、保存。

 

そして、「ブログ2」の「最近の記事」を表示したい部分に以下のタグを記述。

<MTMultiBlog include_blogs="2">
  <MTEntries lastn="5">
    <h4><MTEntryDate format="%Y-%m-%d">:<a href="<MTEntryPermalink>"><MTEntryTitle></a></h4>
    <MTEntryExcerpt><a href="<MTEntryPermalink>">続きはこちら⇒</a>
  </MTEntries>
</MTMultiBlog>

 

 

参考ページ

複数ブログのドッキング(MultiBlog)(30代サラリーマンのためのMovableTypeで簡単!ホームページ管理)
http://cms-mt.com/multiblog.html
複数ブログのドッキング(MultiBlog)(30代サラリーマンのためのMovableTypeで簡単!ホームページ管理)

 

MultiBlog 機能を利用したテンプレートのカスタマイズ | Movable Type 4 ドキュメント
http://www.movabletype.jp/documentation/designer/multiblog/multiblog_template_tags.html
MultiBlog 機能を利用したテンプレートのカスタマイズ | Movable Type 4 ドキュメント


私たちのウェブサイトは、Movable Typeと汎用テンプレートセットを使って生まれ変わりました。汎用テンプレートセットを使えば、Movable Typeを使って新しいウェブサイトを誰でも簡単に、実際に数回のマウスクリックだけで立ち上げることができます。ウェブサイトのためのブログを作成して、汎用ウェブサイトのセットを選んで、再構築するだけです。ほらご覧のとおり!Movable Type のおかげでこんなに簡単にウェブサイトを作成できました!