harumemo

メモ書きです。

ワードプレスには、デフォルトでページ分割の機能が実装されている様子。

<!--nextpage-->でわけられる。

 

<?php wp_link_pages(); ?>を使ってページャーを表示する必要がある。

あと検索エンジンに重複ページと解釈されないよう、ヘッダを工夫する必要がある。

とはいえ、<?php the_content('','','') ?>の最後に出力する系のプラグインとかぶるとめんどくさいかも。ただし、do_shotcodeでPHPファイルの中に直書きする手も。

 <?php
wp_social_bookmarking_light_output_e();
echo do_shortcode('[fbcomments]');
?>

<?php
$defaults = array(
	'before'           => '<p>' . __( 'Pages:' ),
	'after'            => '</p>',
	'link_before'      => '',
	'link_after'       => '',
	'next_or_number'   => 'number',
	'separator'        => ' ',
	'nextpagelink'     => __( 'Next page' ),
	'previouspagelink' => __( 'Previous page' ),
	'pagelink'         => '%',
	'echo'             => 1
);
wp_link_pages( $defaults );
?>
ちなみに、before, afterを設定すると「ページ:」の表示が消える。なんじゃこりゃ?

on-ze.com

 

be-free92.com

 

function link_page_header() {
global $page, $pages;
if ( !$max_page ) { $max_page = count($pages); }
$current_page = $page;
if ( $page == 0 ) { $current_page = 1; }
echo '<!-- page:' . $page . '|current_page:' . $current_page . '| max_page:' . $max_page . ' -->'."\n";
if($max_page > 1) {
if($current_page == $max_page) {
if($current_page == 2) {
echo '<link rel="prev" href="' . get_the_permalink() . '">' . "\n";
} else {
echo '<link rel="prev" href="' . get_the_permalink() . intval($current_page - 1) . '/">' . "\n";
}
} else {
if($current_page == 1) {
echo '<link rel="next" href="' . get_the_permalink() . intval($current_page + 1) . '/">' . "\n";
} else {
if($current_page == 2) {
echo '<link rel="prev" href="' . get_the_permalink() . '">' . "\n";
} else {
echo '<link rel="prev" href="' . get_the_permalink() . intval($current_page - 1) . '/">' . "\n";
}
echo '<link rel="next" href="' . get_the_permalink() . intval($current_page + 1) . '/">' . "\n";
}
}
}
}

 

 

$page_links .= wp_link_pages(array(
                    'before' => '', 'after' => '',
                    'link_before'      => '<li>',
                    'link_after'       => '</li>',
                    'next_or_number' => 'next',
                    'separator' => '',
                    'nextpagelink'     => '≫',
                    'previouspagelink' => '≪',
                    'pagelink'         => '%',
                    'echo' => false
                    )
                );

 

function show_page_link() {
    global $page, $pages;
    $max_page = count($pages);
    if($max_page > 1) {
        // echo '<p>current_page:' . $page . '| max_page:' . $max_page . '</p>'."\n";
        echo '<div id="pagelink">' . "\n";
        if( $page < $max_page) {
            preg_match('/<h[1-6].+?<\/h[1-6]>/u', $pages[$page], $matches);
            if ( count($matches[0]) > 0 ) {
                $offset_begin = mb_strpos($matches[0],'>');
                $offest_end   = mb_strrpos($matches[0], '/h', $offset_begin+1);
                echo '<p><span>NEXT:</span>' . mb_substr($matches[0], $offset_begin + 1, $offset_end - $offset_begin -2) . '</p>';
            }
        }
        $page_links = wp_link_pages(array(
                        'before' => '<ul class="link-page-navi">',
                        'after' => '</ul>',
                        'link_before'      => '<li>',
                        'link_after'       => '</li>',
                        'next_or_number' => 'number',
                        'separator' => '',
                        'pagelink'         => '%',
                        'echo' => true
                        )
                    );
        echo '<!-- /#pagelink --></div>' . "\n";
    }
}