https://getshifter.io/support/pagination-on-shifter/
https://getshifter.io/support/appending-urls-to-the-artifacts/
- function.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/** * Shifterで生成されるURLにページネーションを対応 */ function my_append_urls( $urls ) { $limit = get_option('posts_per_page'); $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => -1, 'fields' => 'ids', 'no_found_rows' => true, ); $the_query = new WP_Query($args); if ($the_query->have_posts()) { $last_page = ceil(count($the_query->posts) / $limit); for ($i = 2; $i <= $last_page; $i++) { $urls[] = home_url('/news/page/' . $i . '/'); } } return $urls; } add_action( 'init', function(){ add_filter( 'ShifterURLS::AppendURLtoAll', 'my_append_urls' ); } ); |
Shifterは静的化対象のURL をWordPress REST API を利用して JSON で取得できるようになっている。また、WordPressのアーカイブページにおけるページネーションがデフォルトではデプロイ時に正しく認識されず、静的化対象から漏れてしまうことがある。そのため、functions.php で ShifterURLS::AppendURLtoAll
を利用することで、対象のURLを確実に静的化することが可能。特に、ブログページやニュースページの一覧などは注意が必要だが、将来的には本家で簡単に対応できるよう改善されることを祈る。
Was this helpful?
0 / 0
1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。