サポート » 使い方全般 » バックナンバーの表示について

  • 解決済 TOY_TOY

    (@blacksander)


    いつもお世話になっております。

    現在、ブログを作っているのですが
    1ページに1つの記事しか表示させていません。

    フッターに
    PREV 1 ¦ 2 ¦ 3 ¦ 4 ¦ 5 NEXT
    このようなバックナンバーみたいなものを
    作成したいと思っているのですが
    作成方法がわかりません。

    にたようなプラグインは発見できたのですが
    上記のような形にしてほしいといわれてしまい困っています。

    どなたか、おわかりになるかたがいましたら、教えていただけないでしょうか?

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • wp-pagenaviというプラグインがあり、ある程度表示方法をカスタマイズできるので、試してみてはいかがでしょう? 標準で日本語言語ファイルも入っています。

    ただ、現在はテーマ側で対応させたりしているため、実際にプラグインは使っていませんので、あしからず。

    一応プラグインのダウンロード先を記しておきます:WP-PageNavi

    こんにちは

    wordPressには、ひとつの投稿を分割してページング表示する機能があります
    とても便利な機能なので、よろしければご検討ください

    テーマファイルに

    <?php wp_link_pages(); ?>

    を書いておけば、

    後は、通常の投稿本文で

    <!--nextpage-->

    それらしいものが出来るので、お好みでスタイルシートにスタイルを設定して使えます。

    twentyten等なら、テーマ側では、wp-link_pages()が書いてありますから、

    投稿の途中にに<!--nextpage-->と入れて書いてみてください。

    nobitaさん、こんにちは。

    nobitaさんの方法は1つの記事やページを分割するのに確かに有効ですが、質問者の目的はバックナンバーですから、よくフッターに「<- old post」とか「<- 過去の記事」、「new post ->」「新しい記事 ->」みたいに表示されるところを変更したいというものではないでしょうか?

    <!–nextpage–>はnobitaさんもお書きになられているとおり、記事本文に挿入することで、長くて読みづらくなってしまった1つの記事を複数ページで構成されているかのようにするものだと理解していましたが、万一、理解に間違いがあるようでしたら後学のためにもご指摘ください。

    chestnut_jpさん こんにちは

    nobitaさんの方法は1つの記事やページを分割するのに確かに有効ですが、質問者の目的はバックナンバーですから、よくフッターに「<- old post」とか「<- 過去の記事」、「new post ->」「新しい記事 ->」みたいに表示されるところを変更したいというものではないでしょうか?

    私は、質問者ではないのでお答えできませんが、「そうかもしれない」と思います

    <!–nextpage–>はnobitaさんもお書きになられているとおり、記事本文に挿入することで、長くて読みづらくなってしまった1つの記事を複数ページで構成されているかのようにするものだと理解していましたが、万一、理解に間違いがあるようでしたら後学のためにもご指摘ください。

    特に、指摘することはありません

    お答えしている内容それ自体が、「間違っているよ」という突っ込みは、私的には、歓迎ですが、「ちょっと、ピントあってないんじゃない」といわれても、天然です

    この場は、blacksanderサンのために、「お役に立つ」ための場なので、「ピントあってない奴」の話で盛り上がってはいけないという事でご了解ください :-)

    スレッド開始 TOY_TOY

    (@blacksander)

    ご返信が遅れてしまい大変申し訳ありません。

    確かにchestnut_jpさんのおっしゃる通りです。

    nobitaさんの方法は1つの記事やページを分割するのに確かに有効ですが、質問者の目的はバックナンバーですから、よくフッターに「<- old post」とか「<- 過去の記事」、「new post ->」「新しい記事 ->」みたいに表示されるところを変更したいというものではないでしょうか?

    でもnobitaが教えてくださったことも今後、使用する機会がありそうなので
    メモっておきます。ありがとうございます!!

    やはり、WP-PageNaviでの見せ方ではなく
    シンプルに
    PREV 1 ¦ 2 ¦ 3 ¦ 4 ¦ 5 NEXT
    これがいいと言われてしまいました…

    やはり方法はないものなのでしょうか?

    スレッド開始 TOY_TOY

    (@blacksander)

    ご返信が遅れてしまい大変申し訳ありません。

    確かにchestnut_jpさんのおっしゃる通りです。
    nobitaさんの方法は1つの記事やページを分割するのに確かに有効ですが、質問者の目的はバックナンバーですから、よくフッターに「<- old post」とか「<- 過去の記事」、「new post ->」「新しい記事 ->」みたいに表示されるところを変更したいというものではないでしょうか?

    でもnobitaが教えてくださったことも今後、使用する機会がありそうなので
    メモっておきます。ありがとうございます!!

    やはり、WP-PageNaviでの見せ方ではなく
    シンプルに
    PREV 1 ¦ 2 ¦ 3 ¦ 4 ¦ 5 NEXT
    これがいいと言われてしまいました…

    やはり方法はないものなのでしょうか?

    blacksanderさん、こんにちは。

    WP-PageNaviの設定画面のうち、「総ページ数用テキスト」の箇所を空欄にし、「前のページ用テキスト」を「PREV」に、「次のページ用テキスト」を「NEXT」にすれば、ご希望の表示になるはず(|で区切られるかどうかはテーマなどによっても異なることはあります)なのですが、それでもご不満なようですと、今回は申し訳ありませんがお力になれそうにありません。

    まずはWP-PangeNaviをいろいろ弄ってみて、表示がどのように変化するかを見てみるのもいいとは思いますが・・・

    WP-PangeNaviのようなプラグインを使ってもいいですし、
    プラグインを使わなくても、WordPressの paginate_links() という関数を呼ぶことでページネーションが表示されます。
    どちらの場合もCSSで指定することによって、好きな表示形式が可能ですよ。

    こんにちは、

    投稿順に番号でリンクするだけでいいなら、以下の関数をを作ってみたので、よろしければお試しください

    テーマの、functions.phpに、以下を貼り付け

    <?php
    
    function my_backnumber($min=1,$max=5,$separater='|'){
    	global $posts;
    	global $post;
    
    	//第二引数が0なら公開エントリすべて
    	if($max == 0){
    
    		$count_posts 	= wp_count_posts();
    		$max 			= $count_posts->publish;
    	}
    	query_posts("order=ASC&showposts=-1");
    
    if(have_posts()){
    	$i 		= 0;
    	$result = "";
    	$memo 	= "";	
    
    /**
     * ハイパーリンクの作成
     *
     *
     *
     *
     */
    while (have_posts()) : the_post();
    
    	if($i>=$min and $i<=$max){
    
    		if(get_permalink( $post->ID ) == "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']){
    
    			$class = "current";
    
    			$memo = $i;
    
    		}else{
    
    			$class = "back-number-link";
    
    		}
    
    		$result .= "<a href=\"". $post->guid."\" class=\"$class\" title=\"".$post->post_title."\">$i</a>";
    	}
    
    	$i++;
    endwhile;
    
    }
    
    /**
     * リンクセパレータの追加と、prev next リンクの追加
     *
     *
     *
     *
     */
    
    if($memo > $min or $memo < $max - 1){
    
    	$b = $memo - 1;
    	$a = $memo + 1;
    	if(preg_match("|(<a[^>]+>)($b)(</a>)|",$result,$regs)){
    
    	$before = $regs[1]."prev".$regs[3]."&nbsp;&laquo;&nbsp;";
    
    	}else{
    
    	$before = "";
    
    	}
    
    	if(preg_match("|(<a[^>]+>)($a)(</a>)|",$result,$regs) and !empty($memo)){
    
    	$after = "&nbsp;&raquo;&nbsp;".$regs[1]."next".$regs[3];
    
    	}else{
    
    	$after = "";
    
    	}
    
    	$result = str_replace('a><a','a>'.$separater.'<a',$result);
    
    	echo "<div class=\"back-number\">".$before.$result.$after."</div>";
    
    }
    wp_reset_query();
    
    }
    
    add_filter('wp_head','back_number_style');
    
    function back_number_style($content){
    
    	echo $content.'<style type="text/css">a.current{color:red;}</style>';
    }
    ?>

    footer.php等のテンプレートファイルに

    <?php
    my_backnumber(1,40);
    my_backnumber(41,80);
    ?>

    引数は、my_backnumber(最初に表示したい番号,最後の番号,’セパレータ’)です。
    エントリがたくさんある場合に、分割して書けるようにしています。

    現在標示しているページの番号は、赤く表示、prev nextは、赤いページの次のページや前のページへのリンクです

    スレッド開始 TOY_TOY

    (@blacksander)

    連絡が遅れてしまい大変申し訳ありません。
    ご連絡ありがとうございます!!

    大変申し訳ないのですが、希望通りの動きができたのですが
    この一週間で仕様がかわってしまい…

    こちらは質問時の動きは、皆様のおかげでできましたので
    解決とさせていただきます!

    再度、質問は投稿させていただきます!
    ありがとうございました!

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「バックナンバーの表示について」には新たに返信することはできません。