虽然说百度的种种做法让人无语,但是我的一个产品站还是不得不重视百度优化的方向,其中最能够直观表现网站状况的是百度收录的状况。

之前我分享过在文章中现实是否被百度收录的技巧:

WordPress给文章添加百度是否已收录查询和显示功能

但是,如果要我们一篇一篇文章去看是否被收录那多麻烦,所以需要有一个页面能自动把网站中没有被百度收录的文章列出来!然后我们可以去做针对性的优化。

既然想到这一步,那么再进一步,直接将没有被收录的文章网址列出来,因为百度站长工具有个手动批量提交网址收录的窗口,这可省事不少。

先来看看效果:

wordpress自动提取未被百度收录文章列表

wordpress自动提取未被百度收录文章列表

当然,为了美观和更加直观,我在网址后面添加了日期和文章名称。

要实现这么功能我是通过wordpress提取不包含字段meta_key文章列表的思路来制作wordpress自动提取未被百度收录文章列表。

而要提取未被百度收录的文章列表就要判断baidu_record这个字段,如果被收录那么baidu_record=1,我起初想到的是baidu_record=0,但是试了好几次都不行。于是我打开未被收录的文章进入编辑器,发现原来如果文章未被百度收录的时候并不是baidu_record=0,而是根本没有baidu_record这个字段。

找了很久才找到,如果要反向提取不提取包含字段meta_key文章列表需要用到这个函数:’compare’ => ‘NOT EXISTS’

后面就简单了,好了,直接分享代码如下:

<?php query_posts( array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'baidu_record',
'compare' => 'NOT EXISTS',
)),
'showposts' =>300,
'orderby' => 'ID',
));
if (have_posts()) :
while (have_posts()) : the_post();?>
<li>
<a target="_blank" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_permalink(); ?></a>
<?php the_time('Y年n月j日');?>
<?php the_title();?>
</li>
<?php endwhile;endif;wp_reset_query(); ?>