カテゴリ別に関連する投稿を表示する方法
-
-
[同じカテゴリの関連する投稿を表示する方法](http://wordpress.stackexchange.com/questions/30039/how-to-display-related-posts-from-same-category)の重複の可能性possible duplicate of [How to display related posts from same category?](http://wordpress.stackexchange.com/questions/30039/how-to-display-related-posts-from-same-category)
- 0
- 2012-02-05
- kaiser
-
2 回答
- 投票
-
- 2012-02-05
質問はすでに行われており、回答も投稿されています.
同じカテゴリの関連する投稿を表示する方法 関連する投稿を表示したい場所で、ループの後にsingle.php内にこのコードを追加します.
<?php $related = get_posts( array( 'category__in' => wp_get_post_categories($post->ID), 'numberposts' => 5, 'post__not_in' => array($post->ID) ) ); if( $related ) foreach( $related as $post ) { setup_postdata($post); ?> <ul> <li> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a> <?php the_content('Read the rest of this entry »'); ?> </li> </ul> <?php } wp_reset_postdata(); ?>
同じカテゴリの関連する投稿が、投稿の抜粋とタイトルとともに表示されます. ただし、このコードで関連する投稿のタイトルのみを表示する場合は、この行を削除してください.
<?php the_content('Read the rest of this entry »'); ?>
The question has already been asked and the answer has been posted too,
How to display related posts from same category?
Add this code inside your single.php after a loop wherever you want to show related post,
<?php $related = get_posts( array( 'category__in' => wp_get_post_categories($post->ID), 'numberposts' => 5, 'post__not_in' => array($post->ID) ) ); if( $related ) foreach( $related as $post ) { setup_postdata($post); ?> <ul> <li> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a> <?php the_content('Read the rest of this entry »'); ?> </li> </ul> <?php } wp_reset_postdata(); ?>
It will display related post from the same category with the post excerpt and title , however if want this code to display just the title of related post then remove this line,
<?php the_content('Read the rest of this entry »'); ?>
-
申し訳ありませんが、私はワードプレスとPHPの初心者です.気にしないのであれば、そのコードをsingle.phpに入れる方法を教えてもらえますか?sorry I am noob in wordpress and PHP.If yu dont mind, could yu tell me how to put that code in my single.php??
- 0
- 2012-02-05
- Felix
-
私の答えをもう一度読んでください私はいくつかの詳細を追加しました(テスト済み)read my answer again i have added few more details (TESTED)
- 1
- 2012-02-05
- Sufiyan Ghori
-
あなたは(多分)重複として投票を閉じることができますか?You can (maybe) close vote as dublicate?
- 0
- 2012-02-05
- kaiser
-
@Xufyanそのコードは、コメントの後に使用したときに次のエラーを表示します致命的なエラー:未定義の関数odd_title()の呼び出し@Xufyan that code shows me ethe following error when i used it after the comment Fatal error: Call to undefined function odd_title()
- 0
- 2012-02-05
- Felix
-
申し訳ありませんが、上記のコードで「ODD」を「the」に置き換えてくださいsorry, replace 'ODD' with 'the' in the above code
- 1
- 2012-02-05
- Sufiyan Ghori
-
@Xufyan行を作成するときにエラーが発生した場合@Xufyan If i yake that error making line I get no post i just get five bullets with no post or title
- 0
- 2012-02-05
- Felix
エラーはコードから削除され、完全に正常に機能しています(テスト済み).変更したコードを私の回答からコピーしてくださいthe error is removed from the code and now it is working perfectly fine (Tested), copy the modified code from my answer- 1
- 2012-02-05
- Sufiyan Ghori
@Xufyanしかし、今ではパーマリンク付きの投稿タイトルのみが表示されます:\ 任意のヒント??@Xufyan But now it shows only the post title with perma link :\ any tips??- 0
- 2012-02-05
- Felix
これは、このコード行を削除したことを意味します.、 元の場所に追加し直しますit means you have removed this line of code, , add it back where it was- 1
- 2012-02-05
- Sufiyan Ghori
@Xufyanいいえ私はラインを外しません.それでももう一度試してみると、パーマリンク付きのタイトルが表示されます.@Xufyan no I dint take off the line.Tried again still it shows me the title with perma link.- 0
- 2012-02-05
- Felix
[チャットでこの議論を続けましょう](http://chat.stackexchange.com/rooms/2392/discussion-between-felix-and-xufyan)let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/2392/discussion-between-felix-and-xufyan)- 0
- 2012-02-05
- Felix
これはあなたがリンクした答えよりもずっと良いですThis is way better than the answer to which you linked- 0
- 2014-09-04
- Claudiu Creanga
- 2018-07-02
もう1つのクリーンで非常に柔軟なオプション:
このコードをfunctions.phpファイルに入れます
function example_cats_related_post() { $post_id = get_the_ID(); $cat_ids = array(); $categories = get_the_category( $post_id ); if(!empty($categories) && is_wp_error($categories)): foreach ($categories as $category): array_push($cat_ids, $category->term_id); endforeach; endif; $current_post_type = get_post_type($post_id); $query_args = array( 'category__in' => $cat_ids, 'post_type' => $current_post_type, 'post_not_in' => array($post_id), 'posts_per_page' => '3' ); $related_cats_post = new WP_Query( $query_args ); if($related_cats_post->have_posts()): while($related_cats_post->have_posts()): $related_cats_post->the_post(); ?> <ul> <li> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> <?php the_content(); ?> </li> </ul> <?php endwhile; // Restore original Post Data wp_reset_postdata(); endif; }
これで、次を使用してサイト内の任意の場所で関数を呼び出すことができます.
<?php example_cats_related_post() ?>
必要に応じて、リスト要素を削除したり、スタイルを設定したりできます.
Here another clean and very flexible option:
Put this code in your functions.php file
function example_cats_related_post() { $post_id = get_the_ID(); $cat_ids = array(); $categories = get_the_category( $post_id ); if(!empty($categories) && is_wp_error($categories)): foreach ($categories as $category): array_push($cat_ids, $category->term_id); endforeach; endif; $current_post_type = get_post_type($post_id); $query_args = array( 'category__in' => $cat_ids, 'post_type' => $current_post_type, 'post_not_in' => array($post_id), 'posts_per_page' => '3' ); $related_cats_post = new WP_Query( $query_args ); if($related_cats_post->have_posts()): while($related_cats_post->have_posts()): $related_cats_post->the_post(); ?> <ul> <li> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> <?php the_content(); ?> </li> </ul> <?php endwhile; // Restore original Post Data wp_reset_postdata(); endif; }
Now you can simply call the function anywhere in your site using:
<?php example_cats_related_post() ?>
You may want to remove the list elements or style them as per your need.
私のギャラリーサイトで、現在の写真の下に他の写真を表示したいと思います(単一の投稿で).より多くのコードを見ましたが、カテゴリを指定するように求められますが、コードでカテゴリを手動で指定したくないコード自体にカテゴリIDまたは名前を取得させたいです.完全な投稿を取得するとはるかに簡単になります投稿タイトルの代わりに、自宅やカテゴリのように表示できるようにします