人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

WordPress3.5.1についての質問です。

現在フロントページには最新の投稿を10件表示させております。
ここに表示させたくない記事をID等で指定することは可能でしょうか?
最新の投稿一覧にのみ非表示としカテゴリから参照した時には表示させたいのです。
記事の日付を変える方法以外でお願いします。


●質問者: soldano820
●カテゴリ:はてなの使い方
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ラフティング
●50ポイント

初心者向けの方法としては、トップページ用のページを別途(home.phpを使用する)作り、ループ部分に下記を参考にパラメータを追加してください。
http://www.adphic.jp/wp/templatetag/loop/query_posts/
今回の除外方法の指定がなかったので、具体的な記述方法はこちらには紹介していません。

※home.phpの作り方
WordPressは、index.phpの他にhome.phpがある場合、home.phpをトップページとして優先される仕様になっています。
そのため、index.phpをダウンロードして、home.phpとリネームし、ループ部分に修正を行ったうえでアップロードすれば、home.phpがトップページとして表示されます。


soldano820さんのコメント
回答ありがとうございます。参考にさせていただきます。

2 ● a-kuma3
●100ポイント

query_post で post__not_in を指定すれば、質問にあるようなことは実現できるのだと思います。
ちょっと気になるのが、公式ドキュメントの query_posts のページにある以下の記述です。

query_posts()はWordPressのメインクエリーを変更し表示される投稿を変更する方法としては、最もかんたんですが、効率的ではなく、好まれない方法です。

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

キャッシュが有効に効かなくなって、データベースへのアクセスが増えるから、「効率的ではない」と言ってるのかな。

公式ドキュメントの仰せに従い、pre_get_posts を使った場合、こんな感じのコードになると思います。。

<?php
function exclude_some_posts_in_home( $query ) {
 if ( $query->is_home() && $query->is_main_query() ) {
 /* id=10, 11, 15 の記事を除外 */
 $query->set('post__not_in', array(10, 11, 15));
 }
}
add_action( 'pre_get_posts', 'exclude_some_posts_in_home' );
?>

例として、id が 10、11、15 の投稿をホームで表示の対象外にしています。
上記の記述を functions.php に追記すると、希望してることができるんじゃないかと思います。

テーマには何を使っているか、とか、PHP はどの程度分かるか、とか、PHP のソースはいじるつもりがない、というようなことを補足すると、もっと適切な回答が付くように思います(ぼく以外から (^^;


pre_get_posts については、以下もご参考に。


soldano820さんのコメント
ありがとうございます。非常に分かりやすい回答でした。参考にさせていただきます。

3 ● boost_beast
●150ポイント ベストアンサー

http://www.df-cue.com/wp/2010/01/15/advanced-category-excluder/

こちらを使用して見るのはどうでしょうか。


soldano820さんのコメント
なんと便利なプラグイン!解決しました。ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ