【child_pages_shortcode】親ページに子ページの案内をのせる場合の施策
子ページがたくさんある場合に負荷が大きくなる問題の改善
このプラグインでは子ページのリストを表示する際に、抜粋が入力されていればそのテキストを、入力されていなければ本文から自動的に抽出して、タイトルの下に表示します。
この際、WordPressの get_the_excerpt
というフィルターフックを使用するんですが、子ページがある程度の数になると、この処理が非常に重くなることが判明しました。
そこで、その対策として、ショートコードに以下のような属性を追加しました。
上の例のように、 disabled_excerpt_filters
という属性を使用すると、get_the_excerpt フィルターが一切適用されなくなります。
この結果、抜粋が入力されていない場合は、抜粋の部分に何も表示されなくなりますが、子ページが増えても負荷は上昇しなくなります。
できれば、抜粋は抜粋欄で入力していただいて、 disabled_excerpt_filters
属性をセットしていただくことを推奨します。
フィルターフックの追加
今回のバージョンアップで、child_pages_shortcode_post
というフィルターフックを追加しました。
このフックは、子ページの $post に対するフックで、以下のように使用します。
<?php add_filter('child_pages_shortcode_post', 'my_child_pages_shortcode_post'); function my_child_pages_shortcode_post($post){ // 抜粋の代わりに本文を使用する $post->post_excerpt = $post->post_content; return $post; } 【固定ページに表示させる列数】 ★列を3列にする場合 この場合のアイキャッチ画像は150X150で表示されるので150X150で用意しておくのがよい。 ★列を4列にする場合 この場合のアイキャッチ画像は120X120で表示されるので120X120で用意しておくのがよい。 【列で表示した場合の修正箇所】 ★商品名のフォントが大きすぎるので、適性な大きさにスタイルシートから変更する。h4のfontのサイズで変更する。 ★商品名の左側に赤いラインが出ているので削除する。スタイルシートから変更。 #content h4 { color: #9F7535; border-left-width: 3px; border-left-style: solid; border-left-color: #D6B583; font-size: 16px; line-height: 16px; margin-top: 15px; margin-right: 5px; margin-bottom: 10px; margin-left: 5px; padding-top: 3px; padding-right: 5px; padding-bottom: 3px; padding-left: 8px; } となっているが font-size: 16px;→font-size: 12px; border-left-width: 3px; border-left-style: solid; border-left-color: #D6B583; は削除 以上