MovableType関連の記事一覧



20160629-MovableTypeの正規表現置換のregex_replaceモディファイア-00

タイトルで落ちているような気もしますが、今回はMovable Typeに標準で搭載されているモディファイア「regex_replace」についてです。



この「regex_replace」モディファイアは、変数や値を出力するときに正規表現を使用して置換できる大変強力なモディファイアです。

コンテンツのアドレスをデータベースの中身を書き換えずに出力だけ変化させたい時に便利に使っている方も多いでしょう。

記事の続きを読む




20160621-mtObjectLoopでブログの最新記事を表示する-00

●以前書いたテンプレートコードでエラー

以前、Movable Typeにてウェブサイトのサイドバーにブログの最新記事●件を出す方法として、以下のブログ記事を書きました。

この中で、mt:MultiBlogタグとモディファイアの「ignore_archive_context="1"」を組み合わせて使ったテンプレートコードを紹介しました。

<mt:BlogID setvar="blog_id">
<mt:MultiBlog blog_ids="$blog_id" ignore_archive_context="1">
    <mt:Entries lastn="○○">
        個々のブログ記事の情報を出力するテンプレートタグ
    </mt:Entries>
</mt:MultiBlog>


このテンプレートコードで、正常に動作していたのですが、とあるページを見てみると、ダメなページがありました。

正常に構築できていなかったページはカテゴリーアーカイブのページです。


会社のDTP情報のサイトなどは、月別アーカイブとカテゴリーアーカイブのテンプレートコードを一つにして使用して体裁を一緒にしているのですが、月別アーカイブは正常に構築されているのに、カテゴリーアーカイブは正常に構築されていなくて、内容が最新ではありませんでした。

エラーに気がつかなかったのは公開のタイミングが「公開キュー経由」の構築だったからです。

公開のタイミングを「スタティック」にしてみると「Can't call method "id" on an undefined value」というエラー表示。

20160621-mtObjectLoopでブログの最新記事を表示する-01

記事の続きを読む



20160514-MovableTypeでこのカテゴリーの記事がなかったら-00

Movable TypeもMovable Type 3からの長いつきあいなのに、まだハマることがあるので、書いてみたネタです。




●やりたいこと

今回は『カテゴリー別の最新記事●●件を表示するが、表示するものがなかった場合に▲▲を表示する』というテンプレートコードを書いてみます。

トップページやお知らせのページなどで、「新製品のお知らせ」「営業日のお知らせ」「キャンペーンについて」などのカテゴリー別の最新記事一覧を表示することがありますが、そういったものを作成します。


以下の画像の様なものですね。以下の画像の例では、「営業日のお知らせ」のカテゴリーで、現在公開されている記事がないので、「現在、お知らせする内容はございません」と表示しています。(ゴールデンウィークやお盆の時期、年末年始などに記事をアップするので、それ以外の時期は公開されている記事がない)

20160514-MovableTypeでこのカテゴリーの記事がなかったら-01

画像出典:お知らせ(吉田印刷所)


記事の続きを読む



20150920-MovableTypeでブログ記事の最後から指定文字数を表示-01

ブログ記事のタイトルやブログ記事の本文の「最初の20文字」を切り出すというのは、ブログ記事の一覧やパンくずリストなどで使用されるので、ご存じの方も多いと思います。



●先頭の▲▲文字を切り出す「trim_to」

グローバルモディファイアの「trim_to」を使用します。

<$mt:EntryTitle trim_to="20"$>
<$mt:EntryTitle trim_to="20+…"$>

上はブログ記事のタイトルの先頭20文字を表示、下は20文字を超える部分は「…」と追加して表示という意味です。


ブログ記事の本文なら以下の通りになります。グローバルモディファイアの「remove_html="1"」で、ブログ記事の本文からHTML記述を削除した後、「strip_linefeeds="1"」で改行を削除してから指定した文字数を切り出します(そうしないとタグだけで終わってしまうこともある)。

<$mt:EntryBody remove_html="1" strip_linefeeds="1" trim_to="20"$>
<$mt:EntryBody remove_html="1" strip_linefeeds="1" trim_to="20+…"$>



では、逆にブログ記事のタイトルやブログ記事の本文の「末尾から20文字」を切り出すのはどうしたらよいでしょうか?

なお、グローバルモディファイアの「trim_to」にマイナスの値を入れても、末尾からの切り出しにはなりません。

Movable Type 6.0.4 以降では、N に負の値を指定した場合は、文字列の末尾から N 文字取り除き、残った部分を取り出します。例えば、trim_to="-5" と指定すると、"サンプルの文章です" という文章は、"サンプル" と表示されます。

trim_to -(グローバル・モディファイアリファレンス)


記事の続きを読む




今回はMovable Typeで制作するときに、すぐにできそうでできなくてハマる「ブログの最新記事を全ページに表示するためのテンプレート」について書いてみます。



●Movable Typeのコンテキストという概念を理解しよう

「ブログの最新記事を全ページに表示するためのテンプレート」の前に理解しておかなければいけないことがあります。

それはMovable Typeの「コンテキスト」という概念です。


コンテキストは、文脈という意味で、Movable Typeでは、個別記事アーカイブのコンテキストやカテゴリーアーカイブのコンテキストなどがあります。

コンテキストについては以下のページがとても分かりやすいのでMovable Typeを使うユーザーはぜひご一読を。

コンテキストとは

直訳すれば「文脈」です。ここではテンプレートにおける前後の文脈のことをそう呼びます。自然言語における人間の会話や文章にも前後の文脈というものが存在しますから、会話を例に挙げます。

 Aさん:今日は天気がいいですね。

→「今日の天気」のコンテキスト


MTのテンプレートでは現在のコンテキストに適合しないMTタグを使おうとすると、エラーが出るようになっています。

20150912-Movable Typeでブログの最新記事を全ページに表示-01

人間の会話において、文脈に沿っていない話題や発言をすると会話が成立しなくなるのと同じです。

Aさん:今日は天気がいいですね。

→「今日の天気」のコンテキスト

Bさん:はい、僕はハンバーグが好きです。

→コンテキストに沿っていないのでエラー

MTのコンテキストについての考察と解説(Like@Lunatic)


このコンテキストの中でテンプレートタグの挙動が変わってきます。

例えば、インデックステンプレートのコンテキストであれば、最新のブログ記事10件の出力は、普通に最新のブログ記事10件の出力がされます。ですが、カテゴリーアーカイブのコンテキストであれば、最新のブログ記事10件の出力は、そのカテゴリー内の最新のブログ記事10件の出力となります。

この挙動のために、ブログのサイドバーに「最新のブログ記事」を表示させようとすると、コンテキストによって異なった結果が表示されてしまいます。コンテキストの意味からすれば間違いではありません。


ただ、この仕様が、カテゴリーアーカイブを含めた全ページに「普通に最新のブログ記事10件の出力」しようとすると、障害になってしまうわけです。


ここまで理解できましたか?

それではブログの最新記事を全ページに表示するためのテンプレートを作ってみましょう。

記事の続きを読む



今回はMovable Typeのコミュニティで質問されていた「●●以前のエントリー記事だけ表示させる」テンプレートコードの紹介です。


実際の質問はこちら。

■要件

記事一覧があるページというと、
通常、最新記事から古い記事を順に表示していくと思うのですが、
たとえば[2007年度以前]の記事だけを表示させることは可能でしょうか。

くわしい説明はこちらに図にしております。

20150314-MovableTypeで2007年度以前の記事を表示-01
http://pppearl.jp/data/mt/zu3.jpg

記事一覧で〇〇年以前の記事だけを表示させることは可能でしょうか。 - MTQ | Movable Type ユーザーコミュニティ


回答に「プラグインを使えばできますよ」というものがあって、それで解決しているのですが、何でもかんでもプラグインというのは問題では…と思っているので、標準のテンプレートタグだけで何とかしてみます。

記事の続きを読む



●ページの公開時間や更新時間はGoogleの検索結果に表示される

早速本題ですが、ページの公開日時や更新日時をHTMLタグでページ内に書いておくと、Googleで検索する際に表示されますよ、というお話。

パッと見で、新しい情報か、古い情報かがすぐ分かって便利ですね。


以下の画像は「授与品袋」で検索した結果。

スニペットの部分に「2010/50/21」と日付が表示されています。

20150227-HTML5のtimeタグでページの更新日時-01


これは、授与品袋・手提げ紙袋・たとう紙(吉田印刷所)のページのフッター部分にある「公開時間」が反映されています。横に更新時間もありますが、そこの日時はGoogleの検索結果では出てきていません。

つまり、検索結果をコントロールすることができるのです。

20150227-HTML5のtimeタグでページの更新日時-02


そのために使うのが、HTML5のtimeタグです。

timeタグは日付を表す際に使用します。それだけで特に公開日時や更新日時を表すものではありません。


細かなtimeタグの話は上記ページをご覧頂くことにして、記事タイトルにある「ページの更新日時をHTML5のtimeタグを使用して表現」してみましょう。

記事の続きを読む



20150205-MovableType-TinyMCEでBootstrapアイコン-01

●リッチテキストエディタでBootstrapのアイコンが消える

Movable Type 6にて標準搭載されているリッチテキストエディタのTinyMCEがあります。

このTinyMCEのエディタを使用し、HTML編集モードにして以下のHTMLを記述します。

<p><span class="glyphicon glyphicon-circle-arrow-right"></span></p>

<span class="glyphicon glyphicon-circle-arrow-right"></span>はBootstrapのアイコンの記述です。


その後、リッチテキストエディタ(WYSIWYGモード)に切り替えると、HTMLのタグが消えて以下の様になってしまいます。

<p><br /></p>

これでは本文中にBootstrapのアイコンを入れることができません! なんてこった!

記事の続きを読む



20150202-MovableTypeで指定文字数を抜き出す-01

画像出典:CMS プラットフォーム Movable Type(Six Apart)


Movable Typeでサイト構築をしていて、トップページにブログの最新記事のタイトル一覧を付けたり、パンくずリストを設置する際に問題になるのが、「やたらタイトルが長い記事をどうするか」というもの。

タイトルが想定したものより長いと、リスト要素で配置した場合(ul>li>)に、2行になってしまい体裁が崩れてしまうことがあります。

はみ出た分はCSSで「overflow: hidden」してしまう方法もありますが、ここは出力時に指定した文字数で出力するようにしてみましょう。

ついでに指定した文字数を超えていた場合は省略しましたと「…」を付けるようにしてみます。



●trim_toのグローバル・モディファイアを使う

タグの中身から指定した文字数を先頭から抜き出すグローバル・モディファイアが標準で用意されています。

なので、ブログの記事タイトルから先頭の20文字を抜き出す場合には以下の様に書きます。

<$mt:EntryTitle trim_to="20"$>

簡単ですね。

記事の続きを読む



ブログ著者

名前:(Google+のプロフィール)

ケータイ好き。ガジェットが好きでiPhoneやらAndroidなどを所有。Surface Pro 2も持っている。

お仕事は印刷会社で営業・広報活動・DTPオペなどをしています。要は何でも屋さんです。最近は印刷関連より、自社のウェブサイトを制作するお仕事がほとんど。使用しているCMSはMovable Type。

ブログ著者について

サイト内検索