1. HOME
  2. 開発・ブログ運営
  3. WordPress
  4. WordPress で特定のカテゴリだけを非表示にしてみた。wp-pagenavi プラグイン導入しても問題なし。
2012年06月26日
WordPress でランダムに記事をピックアップして表示して ...
2015年04月21日
WordPress でモバイルフレンドリー対応(Wptouch ...
2014年09月09日
今更ながらブログに掲載するソースコードを綺麗に表示出来るシンタ ...
2014年09月10日
超簡単!WordPress のカスタムフィールドの値を取得して ...
2013年12月09日
プラグインを使わずに WordPress でパンくずリストを設 ...
2012年08月13日
$wpdb が NULL なんだけど・・・っていう場合は、wp ...

WordPress で特定のカテゴリだけを非表示にしてみた。wp-pagenavi プラグイン導入しても問題なし。

WordPress で特定の記事を除いて記事一覧を表示する方法です。定番の wp-pagenavi プラグインを導入していてもちゃんと表示されるようになりました。

WordPress で記事一覧を表示するためには、ループを使います。

参考:The Loop – WordPress Codex 日本語版

例えば、

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
  <!– 記事タイトルなどの出力 –>
<?php endif; ?>

な感じで記事一覧を表示しますが、特定のカテゴリの記事のみを省いたりする場合は、大きく2通りあるようです。

in_category() を使って、特定カテゴリを除く

一つ目は、「in_category()」を使う方法。

参考:テンプレートタグ/in category – WordPress Codex 日本語版

引数には除きたいカテゴリのスラッグまたはカテゴリ ID を指定します。例えば、

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
  <php if ( in_category( ‘123’ ) ) continue; ?>
  <!– 記事タイトルなどの出力 –>
<?php endif; ?>

とすると、カテゴリ ID が「123」の記事が除かれます。

ただこの方法だと、記事一覧を10件表示する設定にしている場合(管理ページで設定できます)、除きたいカテゴリの記事が4件あったとすると、10件中、6件しか表示されません。

特定のカテゴリを除いたうえで 10件の記事を表示したい場合は、この方法は NG。

query_posts() を使って、特定カテゴリを除く

二つ目は、「query_posts()」を使う方法。

参考:テンプレートタグ/query posts – WordPress Codex 日本語版

引数の「cat」に「-(マイナス)」を付けて除きたいカテゴリ ID を指定します。例えば、

<?php
  query_posts( ‘cat=-123’ );
  if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
  <!– 記事タイトルなどの出力 –>
<?php endif; ?>

とすると、カテゴリ ID が「123」の記事が除かれます。

こうすれば、除きたい記事を除いた上で、設定した件数分(例えば10件)の記事が表示されます。

特定のカテゴリを除く場合は、通常この query_posts() を使えば良いと思いますが、ページナビゲーションを拡張する、定番のプラグイン WP-PageNavi を導入していると、2ページ目や3ページ目などのリンクをクリックしても、常に1ページ目が表示されてしまいます。

うーん。困った。

wp-pagenavi でも正しく表示する

どうしたものかと思っていたところ、WordPress のフォーラムにそのものズバリの解決方法がありました。

参考:WordPress › フォーラム » ページでページングを利用したい

query_posts( ‘cat=-123’ );

としていた部分を、

query_posts( ‘cat=-112&posts_per_page=10&paged=’.$paged );

としてあげれば、特定のカテゴリを除いた上で、ちゃんと10件表示され、かつ WP-PageNavi もちゃんと動作します。

素晴らしい。

ってことで、このブログのトップページもちゃんと 10件の記事が表示されるようになりました。ちなみに除いているカテゴリは Twitter Tool プラグインで自動投稿している「つぶやき」カテゴリの記事です。

それでは、じゃんじゃん特定のカテゴリを除いちゃってください。

でわでわ。

To view a list of articles by WordPress, use a loop.

Reference: The Loop – WordPress Codex 日本語版

For example,

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
  <!– Output, such as article title –>
<?php endif; ?>

It displays the list looks something like this article, or if you want to omit the article only in a particular category, as seems to be two large.

Except for the specific category by in_category() function

First case, using the “in_category()” function.

Reference: テンプレートタグ/in category – WordPress Codex 日本語版

The argument specifies the category slug or ID of the category you want to exclude. For example,

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
  <php if ( in_category( ‘123’ ) ) continue; ?>
  <!– Output, such as article title –>
<?php } ?>

In this way, the article applied category ID #123 will be removed.

When This way only, and there were 4 (can be set in the administration page) If you have set to display 10 a list of articles, articles of category you want, except, of 10 articles, you will only see 6 articles.

If you want to view the article 10, except on a certain category, this method is NG.

Except for the specific category by query_posts() function

Second case, using the “query_posts()” function

Reference: テンプレートタグ/query posts – WordPress Codex 日本語版

Specifies the category ID you want, except with a – “(minus)” to “cat” of the argument. For example,

<?php <php   query_posts( ‘cat=-123’ );
  if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
  <!– Output, such as article title –>
<?php endif; ?>

In this way, the article “123” category ID will be removed.

In this way, except on the article to be excluded, articles will be displayed (for example 10 minutes) number that you set.

Except if a particular category, but I think should I use “() query_posts” usually this, and has been introduced to extend the navigation page, the plug-in “WP-PageNaviWP-PageNavi” classic, and the second page when you click a link, such as the third page, first page will appear always.

Hmm. Troubled…

To display correctly with wp-pagenavi

I was wondering what to do, there was a solution of Bali itself in the user forum of WordPress.

Referencs: WordPress › フォーラム » ページでページングを利用したい

query_posts( ‘cat=-123’ );

parts had been, and

query_posts( ‘cat=-112&posts_per_page=10&paged=’.$paged );

To give you and, except on a particular category, WP-PageNavi would work just fine, and 10 are displayed properly.

Great.

What is that, 10 articles is now properly display the home page of this blog. Article of the category “tweets” which has been in the auto post “Twitter Tools” plug-ins the way categories are excluded.

So, please put a lot except for certain categories..

I’ll be out.







「WordPress で特定のカテゴリだけを非表示にしてみた。wp-pagenavi プラグイン導入しても問題なし。」に頂いたコメント & トラックバック

  1. […] WordPress で特定のカテゴリだけを非表示にしてみた。wp-pagenavi プラグイン導… […]

  2. […] WordPress で特定のカテゴリだけを非表示にしてみた。wp-pagenavi プラグイン導… […]

この記事にコメントする





Copyright © 2012 - 2014 MacBook Air とWordPressでこうなった All rights reserved
Powered by WordPress.