【環境】
- ルートディレクトリに WordPress をインストール
- /blog/index.php に wp-load.php をインクルード
- /blog/page/2/ みたいな感じでページ送りさせる
そんな方法です。
まずは /blog/index.php です。
require_once ( dirname ( __FILE__ ) . '/../wp-load.php' ); $paged = filter_input ( INPUT_GET, 'paged', FILTER_SANITIZE_SPECIAL_CHARS ); get_header(); $args = array ( 'post_type' => 'post', 'posts_per_page' => 10, 'paged' => $paged, ); $wp_query = new WP_Query( $args ); if ( $wp_query->have_posts() ) { while ( $wp_query->have_posts() ) { $wp_query->the_post(); echo '' . get_the_title() . ''; } wp_reset_postdata(); } echo paginate_links(); get_footer();
/blog/page/2/は /blog/?paged=2 にURLリライトするので、
/blog/.htaccess を作成して下記のように記述します。
RewriteEngine On RewriteBase /blog/ RewriteRule page/([0-9]+) /blog/?paged=$1 [L]
/blog/?paged=2 のような動的URLでいいならURLリライトする必要はありません。
その場合は paginate_links() の引数を下記のように変更します。
echo paginate_links( array ( 'format' => '?paged=%#%', ) );