Php WordPress短代码显示相关帖子
WordPress短代码显示相关帖子 如何在WordPress中手动显示相关帖子 这是我的代码:Php WordPress短代码显示相关帖子,php,jquery,wordpress,post,Php,Jquery,Wordpress,Post,WordPress短代码显示相关帖子 如何在WordPress中手动显示相关帖子 这是我的代码: function related_posts_shortcode( $atts ) { extract(shortcode_atts(array( 'limit' => '5', ), $atts)); global $wpdb, $post, $table_prefix; if ($post->ID) { $retval = '<ul>'; //
function related_posts_shortcode( $atts ) {
extract(shortcode_atts(array(
'limit' => '5',
), $atts));
global $wpdb, $post, $table_prefix;
if ($post->ID) {
$retval = '<ul>';
// Get tags
$tags = wp_get_post_tags($post->ID);
$tagsarray = array();
foreach ($tags as $tag) {
$tagsarray[] = $tag->term_id;
}
$tagslist = implode(',', $tagsarray);
// Do the query
$q = "SELECT p.*, count(tr.object_id) as count
FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p WHERE tt.taxonomy ='post_tag' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id = p.ID AND tt.term_id IN ($tagslist) AND p.ID != $post->ID
AND p.post_status = 'publish'
AND p.post_date_gmt < NOW()
GROUP BY tr.object_id
ORDER BY count DESC, p.post_date_gmt DESC
LIMIT $limit;";
$related = $wpdb->get_results($q);
if ( $related ) {
foreach($related as $r) {
$retval .= '
<li><a title="'.wptexturize($r->post_title).'" href="'.get_permalink($r->ID).'">'.wptexturize($r->post_title).'</a></li>';
}
} else {
$retval .= '<li>No related posts found</li>';
}
$retval .= '</ul>
';
return $retval;
}
return;
}
add_shortcode('related_posts', 'related_posts_shortcode');
它不能像我希望的那样工作。我做错了什么
非常感谢您的帮助。使用类WP Query获取自定义循环 及
// Create Shortcode related_posts_
// Shortcode: [related_posts_ number="5"]
function create_relatedposts_shortcode($atts) {
$atts = shortcode_atts(
array(
'number' => '5',
),
$atts,
'related_posts_'
);
// Custom WP query relatedposts
$args_relatedposts = array(
'posts_per_page' => $atts['number'];,
'order' => 'DESC',
);
$relatedposts = new WP_Query( $args_relatedposts );
if ( $relatedposts->have_posts() ) {
while ( $relatedposts->have_posts() ) {
$relatedposts->the_post();
// add here your html for post
}
} else {
// not found post
}
wp_reset_postdata();
}
add_shortcode( 'related_posts_', 'create_relatedposts_shortcode' );