Child Pages Shortcode 1.5.1

Child Pages Shortcode 1.5.1をリリースしました。

今回のアップデートでは以下の重要な更新が含まれます。

子ページがたくさんある場合に負荷が大きくなる問題の改善

このプラグインでは子ページのリストを表示する際に、抜粋が入力されていればそのテキストを、入力されていなければ本文から自動的に抽出して、タイトルの下に表示します。

抜粋を入力していればそのテキストが表示されます。

抜粋を入力していればそのテキストが表示されます。

この際、WordPressの get_the_excerpt というフィルターフックを使用するんですが、子ページがある程度の数になると、この処理が非常に重くなることが判明しました。

そこで、その対策として、ショートコードに以下のような属性を追加しました。

[child_pages disabled_excerpt_filters=1]

上の例のように、 disabled_excerpt_filters という属性を使用すると、get_the_excerpt フィルターが一切適用されなくなります。

この結果、抜粋が入力されていない場合は、抜粋の部分に何も表示されなくなりますが、子ページが増えても負荷は上昇しなくなります。

デフォルトの表示

デフォルトの表示

disabled_excerpt_filters 属性を使用した場合

disabled_excerpt_filters 属性を使用した場合

できれば、抜粋は抜粋欄で入力していただいて、 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;
}