「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
Perl版ダイナミックパブリッシングとMTPaginateのブログ記事ページ分割を併用する
昨日、以下のようなご質問をいただきました。
DivPagesプラグインをブログで有効にするとMTPaginate(こちらはエントリーページの分割で使用しています)プラグインと併用できなくて困っています。
そこで、Perl版ダイナミックパブリッシングを使っている環境で、MTPaginateプラグインでブログ記事のページを分割する方法を紹介します。
ページ番号を横一列に出力する場合
MTPaginateプラグインでは、各ページへのナビゲーションを、「MTPaginateNavigator」というテンプレートタグで出力しています。
しかし、Perl版ダイナミックパブリッシングこのタグを使うと、このタグの出力が正しくなくなります。
そこで、MTPaginateNavigatorタグの代わりに、MTのテンプレートタグとPHPを組み合わせてナビゲーションを出力します。
ページ番号を横一列に出力する場合は、MTPaginateNavigatorタグを、以下のようなコードに置き換えます。
<$mt:PaginateNumPages setvar="page_count"$>
<mt:For var="page_number" from="1" to="$page_count">
<?php if ($paginate_current_page == <$mt:GetVar name="page_number"$>) : ?>
<$mt:GetVar name="page_number"$>
<?php else : ?>
<mt:If name="page_number" eq="1">
<a href="<$mt:EntryPermalink$>"><$mt:GetVar name="page_number"$></a>
<mt:Else>
<a href="<$mt:EntryPermalink$>?page=<$mt:GetVar name="page_number"$>"><$mt:GetVar name="page_number"$></a>
</mt:If>
<?php endif; ?>
<mt:If name="page_number" ne="$page_count">|</mt:If>
</mt:For>
selectでナビゲーションを出力する場合
MTPaginateNavigatorタグに「style="popup"」のモディファイアを指定すると、ナビゲーションをselectで出力することもできます。
これと同等のことを行うには、MTPaginateNavigatorタグを以下のようなコードに置き換えます。
<$mt:PaginateNumPages setvar="page_count"$>
<select onchange="location.href=options[selectedIndex].value">
<mt:For var="page_number" from="1" to="$page_count">
<option value="<$mt:EntryPermalink$><mt:If name="page_number" ne="1">?page=<$mt:GetVar name="page_number"$></mt:If>"<?php if ($paginate_current_page == <$mt:GetVar name="page_number"$>) { echo ' selected="selected"'; } ?>><$mt:GetVar name="page_number"$></option>
</mt:For>
</select>
