马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
根据当前文章 ID获取设置的标签,
1:根据标签来获取相同标签的文章,并且排除当前文章,
2:如果文章数量不够,就继续获取当前文章分类下面的文章,并且排除当前文章和前面已经获取到的文章,
3:如果还不够我们需要的数量,就整站获取其他文章补够数量。:
如果文章没有标签、或者当前分类的文章数量不够时,都是可以继续或许其他文章来填充到需要的数量。
现在遇到的问题:
当文章标签,只有这一篇文章时,就获取不到内容了,输出为空。
正常情况应该是继续获取当前文章分类下面的其他文章,,,
当文章标签有两篇以上文章时,就正常,能继续获取分类下的文章来填充数量。
仅在只有一篇文章时出现问题,,,
- global $post;$pid = $post->ID;//当前文章的 ID$tags = [];$limit = 6;//自定义数量$post_tags = get_the_terms($pid,'post_tag');if ( !empty($post_tags) && !is_wp_error($post_tags) ) { $tags = wp_list_pluck($post_tags, 'term_id');}$related_args = [ 'ignore_sticky_posts' => 1, 'post_type' => 'post', 'posts_per_page' => $limit, 'post_status' => 'publish', 'post__not_in' => [$pid], 'tag__in' => $tags,];$relateds = new WP_Query($related_args);$post_count = $relateds->post_count;$output = '<ul>';if($relateds->have_posts()){ while($relateds->have_posts()){ $relateds->the_post(); $output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>'; } if($post_count<$limit){//数量还不够 wp_reset_postdata(); $limit = $limit - $post_count;//还差几条数据 $pids = wp_list_pluck($relateds->posts,'ID');//获取已有文章 ID $pids = array_merge([$pid],$pids);//合并文章 ID $catids = wp_list_pluck(get_the_category($pid),'term_id');//分类 ID $related_args = [ 'ignore_sticky_posts' => 1, 'post_type' => 'post', 'posts_per_page' => $limit, 'post_status' => 'publish', 'post__not_in' => $pids, 'category__in' => $catids, ]; $relateds = new WP_Query($related_args); $post_count = $relateds->post_count; if($relateds->have_posts()){ while($relateds->have_posts()){ $relateds->the_post(); $output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>'; } } }//数量还不够 if($post_count<$limit){//还不够 wp_reset_postdata(); $limit = $limit - $post_count;//还差数据 $pids = array_merge($pids,wp_list_pluck($relateds->posts,'ID'));//合并文章 ID $related_args = [ 'ignore_sticky_posts' => 1, 'post_type' => 'post', 'posts_per_page' => $limit, 'post_status' => 'publish', 'post__not_in' => $pids, ]; $relateds = new WP_Query($related_args); if($relateds->have_posts()){ while($relateds->have_posts()){ $relateds->the_post(); $output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>'; } } }//还不够}wp_reset_postdata();$output .= '</ul>';echo $output;
复制代码 代码来自泪雪博客,我发现了这个bug,请教哥哥们该怎么解决
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 网站部分内容来源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|
|