「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
SearchEntriesプラグインをリスト系アーカイブテンプレートで使う際の注意点
SearchEntriesプラグインのテンプレートタグを、カテゴリアーカイブなどのリスト系アーカイブテンプレートで使う場合、注意する点があります。
1.問題が起こる場合
リスト系のアーカイブテンプレートでは、テンプレートの再構築に入る前に、そのアーカイブに必要な記事が先に読み込まれるようになっています。
一方、SearchEntriesプラグインでは、MTEntriesタグの処理を流用するために、「アーカイブに必要な記事」の情報を上書きする処理を行っています。
そのため、リスト系アーカイブテンプレートの中で、SearchEntriesプラグインによる検索を行い、その後にMTEntriesタグでアーカイブ本来の記事を出力しようとすると、正しく出力されないという問題が起こります。
2.解決方法
SearchEntriesプラグインには、上記のような状況を想定して、「MTBackupEntries」と「MTRestoreEntries」というタグが入っています。
以下のように、検索(MTSearchConditionsタグのブロック)の前にMTBackupEntriesタグを入れ、検索結果を出力し終わった後でMTRestoreEntriesタグを実行すると、アーカイブ本来の記事を正しく出力することができます。
<$mt:BackupEntries> <mt:SearchConditions> 検索条件 </mt:SearchConditions> <mt:IfNonZero tag="SearchLoadedEntryCount"> 検索結果を出力する部分 </mt:IfNonZero> <$mt:RestoreEntries$> <mt:Entries> アーカイブ本来の記事を出力する部分 </mt:Entries>