WordPressで新着記事に「NEW」を表示する
お世話になっております。出費を極力押さえているにも関わらず、お金が貯まらない不幸なたかおファンです。
最近WordPressを組み込んだウェブサイト制作をしました。
その際にオリジナルのテンプレートを作成したのですが、新着記事に「NEW」マークを付けたいとの要望。
それの実装を検討してみました。
お世話になっております。出費を極力押さえているにも関わらず、お金が貯まらない不幸なたかおファンです。
最近WordPressを組み込んだウェブサイト制作をしました。
その際にオリジナルのテンプレートを作成したのですが、新着記事に「NEW」マークを付けたいとの要望。
それの実装を検討してみました。
お世話になっております、たかおファンです。
今、MovableType 5(正確にはMTO5だけど)で複数のブログを複合したサイト作ってるんすけど、
カレンダーの構築で超苦戦しました。なぜだ。。。
標準でカレンダーウィジェット付いてるけど、なんともお粗末で、
月送り機能や、カレントの月以外の表示ができんのです。WordPressではデフォなのになんでや!
おそらく記事数が増えると再構築のコストが半端無いからでしょうね。
さてそんなことは放っておいてガシガシ組んでみました。
<mt:SetVarTemplate name="calendar">
<div class="lNavisec01 inlineC">
<h3 class="h3_style02">Calendar</h3>
<p class="inlineC mb12 fS"><$mt:ArchiveDate language="en" format="%B %Y"$></p>
<table cellpadding="0" cellspacing="0">
<tr>
<th>M</th>
<th>T</th>
<th>W</th>
<th>T</th>
<th>F</th>
<th>S</th>
<th>S</th>
</tr>
<mt:Calendar month="this">
<mt:CalendarWeekHeader><tr></mt:CalendarWeekHeader>
<td>
<mt:CalendarIfToday><span class="stay"></mt:CalendarIfToday>
<mt:CalendarIfEntries>
<mt:Entries lastn="1"><a href="<$mt:EntryPermalink archive_type="Daily"$>"><$mt:CalendarDay$></a></mt:Entries>
</mt:CalendarIfEntries>
<mt:CalendarIfNoEntries><$mt:CalendarDay$></mt:CalendarIfNoEntries>
<mt:CalendarIfBlank> </mt:CalendarIfBlank>
<mt:CalendarIfToday></span></mt:CalendarIfToday>
</td>
<mt:CalendarWeekFooter></tr></mt:CalendarWeekFooter>
</mt:Calendar>
</table>
<div class="div_lNavicalendar clearfix">
<p class="div_lNavicalendarL"><mt:ArchivePrevious archive_type="Monthly"><a href="<$mt:ArchiveLink archive_type="Monthly"$>"><$mt:ArchiveDate language="en" format="%B"$></a></mt:ArchivePrevious></p>
<p class="div_lNavicalendarR"><mt:ArchiveNext archive_type="Monthly"><a href="<$mt:ArchiveLink archive_type="Monthly"$>"><$mt:ArchiveDate language="en" format="%B"$></a></mt:ArchiveNext></p>
<!-- /div_lNavicalendar --></div>
<!-- /lNavicalendarsec01 --></div>
</mt:SetVarTemplate>
<mt:IfArchiveType archive_type="Monthly">
<$mt:Var name="calendar"$>
<mt:Else>
<mt:IfArchiveType archive_type="Daily">
<$mt:Var name="calendar"$>
<mt:Else>
<mt:ArchiveList archive_type="Monthly" lastn="1">
<$mt:Var name="calendar"$>
</mt:ArchiveList>
</mt:IfArchiveType>
</mt:IfArchiveType>
そのままコピペしたのでclassとか見出しとかカレンダーと直接関係無いものも混じってます。
すごい苦労した。そして改めてMT公式のリファレンスが言葉足らず過ぎると実感しました。
ポイントは月別、日別アーカイブページの時とは違って、インデックスページの場合でarchive_typeの変更が必要な事ですね。
カレンダー表示するには特定の月のアーカイブの走査が必要なので、インデックスページではカレンダーのテリトリー内だけarchive_type=”Monthly”とする必要があります。
そして、lastn=1として最新月に設定。
という感じでした。
眠いのでこれでさよなら。
今週も火曜日がやってきました!
毎週火曜はプリッキアがサービスをリリースする日です!
今回ご紹介するのは……
Modx運用マニュアル!
http://www.priqia.com/service/modx/index.html
Modxについてもっと知りたいのに、あまり情報がない!
誰かに聞きたいけど、まわりに詳しい人がいない!など
プリッキアがサポートいたします!マニュアルで有効使用!

名刺デザインサービス
http://www.priqia.com/service/card/index.html
なんと、なんと、弊社では名刺が100枚まで、
デザイン料込で9800円でやらせていただきます。
もちろんオリジナルデザイで作成します!

予約管理システム
http://www.priqia.com/service/reservation/index.html
こちらのサービスは、ネイルサロン、美容室、歯医者、整体院など
事前予約が必要なサービスのホームページなどに導入すれば、
らくらく予約管理ができます!
あなたに合ったサービスはありましたか?
是非ご活用ください!
私事ですが、本日は私の誕生日でした。\(^◇^)/
社内の人たちに祝ってもらい、本日のブログネタ完成!
・・・と思ったのですが、写真は撮ってないし、
ブログとしてはちょっと文字数が足りないということで、
前回(2/22)に引き続き、技術系の話をします。
今回は開発者向けのコアな内容にします。
お題はPHPのメール送信ライブラリであるPHPMailer。
事の発端は弊社CMS担当から
「MODxでフォームからメールを送信すると送信者名が文字化けします」
の一言。
私もMODxで組んだフォームからメールを送信したことがありますが、
一度も文字化けが発生したことがありませんでした。
とはいえ実際に文字化けしたメールがある以上調査をせねば
ということでまずは文字化けしたメールを確認。
送信者名が↓の様になっています。
ここに非常に長い名前のメール送信者名\r\n を設定してみます
これを見てピンとくる人もいるかもしれませんが、
どうやら文字化けというより、改行コードがそのまま表示されている模様。
ということでそのあたりを中心に調査開始。
普段メールを使用していても、知っている人は少ないと思いますが、
メールの送信者名は文字をそのまま送っているのではなく、
Base64という方式に変換されて送信されています。
これは送る文字が日本語などであってもすべて英数字+α(64種類)
だけを使用して表すことができるというものです。
たとえば、問題の送信者名を変換すると
といった感じになります。(長いので一部抜粋)
この方式の難点は、64種類であらわすため文字の長さが約33%増加するところで、
メールの規格で定められた“78文字で改行するべき”という規格に簡単に接触し改行が行われます。
ということでこの改行を行っているところを調査すると、以下の記述を発見!
これがなにをしているかというと
文字コードの0~31番(8進数で0~37)と127(8進数で177)と\と”を
文字コードから文字列に変換しますという処理。
改行コード(と再起コード)である10番(と13番)は0~31番に含まれるわけで・・・
しかもマルチバイト文字の場合のみ通るというピンポイント処理。
これを対処するには以下の三つが考えられます。
1.addcslashesの処理を改変する
2.処理を行っているメソッドをオーバーライドする。
3.あきらめて長文にならないようにする。
今回は自分で作成したフォームからの送信なので、
手軽さを考え1の対処をしました。↓
とりあえず、これで問題なく送信されていますが、
オープンソースのコードは過信してはいけないようです。
と書いたのはいいのですが、つい先日このメールフォームスニペットの
新バージョンが出たようで、その中ではこの問題は対処されているそうですorz
あと一週間くらい早く出してほしかった・・・
技術系の話がほとんど無いというのもどうかと思うので、今回はそれ系の話をしようと思います。
最近弊社では、modxというCMSを用いたサイトの管理を提案させて頂いています。
提案する側として、常により良い使い方を求めて日々勉強していますが、
ごく最近まで知らなかった設定の謎についてお話します。
modxでは1つのページをパーツごとに分割して作成することが出来ます。
例えば、ヘッダー、コンテンツ、フッターを別々に作成するなんてことが可能です。
また、作成画面はリッチテキストエディターを使用するため、
↓の図のようにグラフィカルな表示になっているので、直感的に操作ができてとても便利です。

しかし、当然のことながら各パーツを別々に作るということは、ヘッダーで定義されたCSSファイルの情報は、
コンテンツの作成には反映されないという状態になります。
そのため、作成画面を開くと↓の図のように残念な感じで表示されてしまいます。

そんなときのために、modxには作成画面に反映させるCSSを指定する設定が用意されています。

これを指定すればすべて解決・・・と思っていたのですが、実はこれを指定しても作成画面には反映されないのです。
その原因を探るため、ググること約1ヶ月。
やっと見つけた答えは、リッチテキストエディターの設定情報がmodxのCSS指定を上書きしていたというものでした。。
このリッチテキストエディターは、modxをインストールするときに一緒にインストールされるもので、
元々modxの設定を上書く様になっているんです。
しかもそんな注意書きはどこにも書いてないし o(`ω´*)o
こんな隠し設定のようなものをなんで作るんでしょうか(-_-)
デフォルトの設定は信用してはいけないんですね。。
PPPPPRIQIA Press (プププププリッキアプレス) web・ホームページ・モバイルサイト制作の横浜にある制作会社PRIQIA(プリッキア)のスタッフブログです。 |