如网站部分内容只想让浏览者看到,而不想被搜索爬虫抓取,可通过Ajax动态加载页面内容,而不是直接在HTML中显示,页面源代码中也看不到隐藏的内容,搜索爬虫正常情况下不会识别Ajax加载的内容,自然也无法获取到,下面就说一下具体方法。
在主题目录js目录添加一个名称为my-script的JS文件文章源自知更鸟-https://zmingcx.com/prevent-web-content-from-crawlers.html
/js/my-script.js
在其中添加:文章源自知更鸟-https://zmingcx.com/prevent-web-content-from-crawlers.html
jQuery(document).ready(function($) { var data = { 'action': 'zm_action', 'data': 'zm_data' }; $.post(zm_script.ajax_url, data, function(response) { $('.zm-content').html(response); }); });
将下面代码添加到主题函数模板functions.php文件中文章源自知更鸟-https://zmingcx.com/prevent-web-content-from-crawlers.html
// 加载JS文件 function load_zm_script() { wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/my-script.js', array('jquery'), '1.0', true ); wp_localize_script( 'my-script', 'zm_script', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) )); } add_action( 'wp_enqueue_scripts', 'load_zm_script' );
将下面代码添加到主题函数模板functions.php文件中文章源自知更鸟-https://zmingcx.com/prevent-web-content-from-crawlers.html
// 添加ajax动作 add_action('wp_ajax_zm_action', 'zm_action_callback'); add_action('wp_ajax_nopriv_zm_action', 'zm_action_callback'); function zm_action_callback() { echo '不想被搜索爬虫抓取的内容'; wp_die(); }
修改其中的文字。文章源自知更鸟-https://zmingcx.com/prevent-web-content-from-crawlers.html
最后,在准备显示内容的位置添加文章源自知更鸟-https://zmingcx.com/prevent-web-content-from-crawlers.html
<div class="zm-content"></div>
因文字内容是通过Ajax加载的,搜索爬虫抓取不到,只有正常打开网页才会看到。文章源自知更鸟-https://zmingcx.com/prevent-web-content-from-crawlers.html
上面的Ajax动作函数只是加载了一段文字,也可以调用WordPress文章,比如,随机调用5篇文章:文章源自知更鸟-https://zmingcx.com/prevent-web-content-from-crawlers.html
// 添加随机调用5篇文章Ajax动作 function zm_action_callback() { echo '<ul>'; $args = array( 'orderby' => 'rand', 'posts_per_page' => 5 ); $query = new WP_Query( $args ); while ( $query->have_posts() ) : $query->the_post(); echo '<li>'; echo '<a href="'; echo the_permalink(); echo '">'; echo the_title(); echo '</a>'; echo '</li>'; endwhile; wp_reset_postdata(); echo '</ul>'; wp_die(); }
上述随机文章调用并不会被静态缓存,保持每次刷新随机显示文章。文章源自知更鸟-https://zmingcx.com/prevent-web-content-from-crawlers.html 文章源自知更鸟-https://zmingcx.com/prevent-web-content-from-crawlers.html

北京市 1F
如果用密码保护是不是可以是另一种替代方案呢?
把密码公开,任何想看的人都可以输入密码才能看到那部分文字。
之所以这样想是因为jquery有时候弄不好会阻碍页面加载,所以不想引用jquery。
云南省昆明市 2F
靠搜索的应该就不能这样搞了
青海省海东市 3F
上述随机文章调用并不会被静态缓存,这个怎么实现不被缓存的???
我装了个缓存插件,最新文章一直排除不掉
中国 B1
@ 蓝莲花 Ajax动态加载不会被缓存