0

Wordpressで関連する投稿を表示したいです。カテゴリやタグから自動的に選択するのではなく、これらの投稿を手動で選択する必要があります。私は以前にこのコードを使用しました:

<?php $orig_post = $post;
global $post;
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=>5, // Number of related posts that will be shown.
'caller_get_posts'=>1
);
$my_query = new wp_query( $args );
if( $my_query->have_posts() ) {

echo '<div id="relatedposts"><h3>Related Posts</h3><ul>';

while( $my_query->have_posts() ) {
$my_query->the_post(); ?>

<li><div class="relatedthumb"><a href="<? the_permalink()?>" rel="bookmark"     title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?></a></div>
<div class="relatedcontent">
<h3><a href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php  the_title(); ?></a></h3>
<?php the_time('M j, Y') ?>
</div>
</li>
<? }
echo '</ul></div>';
}
}
$post = $orig_post;
wp_reset_query(); ?>

これは関連するタグからうまく選択されますが、関連する投稿を手動で呼び出す必要があります。

呼び出したい投稿IDをカスタムフィールド「myrelatedposts」にカンマ区切りのリストとして入力しました(例:103、104、105、122)。

次に、上記のスクリプトでそれらを呼び出す必要があります。

この投稿のリストを配列に分解して(まだ5つの投稿に制限されています)、各投稿のサムネイルとタイトルを呼び出すにはどうすればよいですか?

提案をありがとう。

4

2 に答える 2

1

これらの引数を試してみてください:

$args=array(
  'post__in' => explode(',', get_post_meta($post->ID, 'myrelatedposts')),
  'ignore_sticky_posts'=>1 // caller_get_posts is deprecated
);

ループに投稿サムネイルを追加するには、 codex などの投稿サムネイル関数を使用するだけです。

// check if the post has a Post Thumbnail assigned to it.
if ( has_post_thumbnail() ) {
    the_post_thumbnail();
} 
于 2012-10-08T13:22:39.337 に答える
0

類似投稿と呼ばれるプラグインがあります。

http://wordpress.org/extend/plugins/similar-posts/

タグだけでなく、投稿内容を検索して照合します。

欠点の1つは、多くの遅いSQLクエリを実行することだと思います。

于 2012-10-08T12:55:29.870 に答える