WordpessをAutopagerizeに対応させてみた

プログラミング関係

大変便利なGreasemonkeyスクリプトの『Autopagerize』。
これはFirefoxやSleipnir、OperaやSafariなど多くのブラウザで使えるように出来る。
どう言うものかというとこんな感じ。

Webページの一番下まで行くと次のページが自動で読み込まれる。

普通であればWebページの一番下まで行くとつっかえて終わりなんだけど、
『Autopagerize』を入れておくと自動で次のページが読み込まれる。
Google等の大手サイトであればもう既に設定がされている。
ただ個人のブログはその限りではなく、
Autopagerizeを動かすなら自分で導入する必要がある。

このブログではPage navigation用のプラグインとして『PageNavi』と言うものを導入している。
トップページの一番下に四角で囲んだ数字が一杯並んでいるアレだ。
これのプラグインのためにAutopagerizeの導入が無理だと思っていたけど、そうでもなかった。
以下はその手順。
ちょっと長いので続きへ。

wordpressにAutopagerizeを導入する手順

参考にしたページは以下の3つ。
AutoPagerize0.0.11』と『WordPressをAutoPagerizeに対応させる方法』、
そして『WordPressでAutopagerize導入』だ。
もし『PageNavi』等が入っていなければ、リンク先で事足りると思う。

なんて言ってみたけど、入っていても事足りるんだけどねw
まずwp-includesフォルダの中にある『link-template.php』って言うファイルを編集する。
以下の2つの関数部分を編集。
ちょっとコードが横長でこのブログではうまく表示されない。
メモ帳などにコピーして見てください。

function get_next_posts_link( $label = 'Next Page »', $max_page = 0 ) {
	global $paged, $wp_query;

	if ( !$max_page ) {
		$max_page = $wp_query->max_num_pages;
	}

	if ( !$paged )
		$paged = 1;

	$nextpage = intval($paged) + 1;

	if ( !is_single() && ( empty($paged) || $nextpage <= $max_page) ) {
		$attr = apply_filters( 'next_posts_link_attributes', '' );
		return '<a rel="next" href="' . next_posts( $max_page, false ) . "\" $attr>". preg_replace('/&([^#])(?![a-z]{1,8};)/', '&$1', $label) .'';
	}
}

15行目に『rel=”next”』を追加。
もう一個の関数は

function get_previous_posts_link( $label = '« Previous Page' ) {
	global $paged;

	if ( !is_single() && $paged > 1 ) {
		$attr = apply_filters( 'previous_posts_link_attributes', '' );
		return '<a rel="prev" href="' . previous_posts( false ) . "\" $attr>". preg_replace( '/&([^#])(?![a-z]{1,8};)/', '&$1', $label ) .'';
	}
}

こちらも『rel=”prev”』って言うのを追加しただけ。

ここからはテンプレートの編集になる。
まずどういう雰囲気かを書いてみる。
僕はindex.phpファイルをいじった。

<?php get_header(); ?>
    <div id="content" class="autopagerize_page_element">
         ページの一番下に行ったら読み込まれる部分。
         いわゆるブログ記事。
    </div>
    //『PageNavi』を読み込んでるところ。
    <?php endwhile; ?>
        <div align="center"><?php wp_pagenavi(); ?></div><br />
    <?php endif; ?>

    //ここまでスクロールすると自動で読み込むのを開始する場所
    <div class="autopagerize_insert_before"></div>

    <div class="footer">
         フッターの記述
    </div>
<?php get_footer(); ?>

簡単に書くとこういう感じ。
ページのコンテンツ部分を

<div class="autopagerize_page_element"></div>

で挟む。
自動で読み込みを開始する位置に

<div class="autopagerize_insert_before"></div>

を書くって言うそれだけ。

『PageNavi』云々とか言っていたけど、本当に全く関係なかった(;><)
テンプレートの方は個々人によって違うので応用してみてね。

コメント

タイトルとURLをコピーしました