Code前端首页关于Code前端联系我们

为了防止WordPress网站内容被搜索爬虫爬行,可以使用AJAX来处理

terry 2年前 (2023-09-26) 阅读数 49 #网站优化

如果某些网站内容只想被浏览者看到,而不想被搜索爬虫爬行,则可以通过Ajax动态加载页面内容隐藏的内容不是直接以 HTML 形式显示,而是在页面源代码中看不到。搜索爬虫一般情况下无法识别Ajax加载的内容,显然无法获取。下面说明具体方法。

添加JS文件

在主题文件夹的js文件夹中添加一个名为my-script的JS文件。

  1. /js/my-script.js

添加:

  1. jQuery(document).ready(function($) {
  2. var data = {
  3. 'action': 'zm_action',
  4. 'data': 'zm_data'
  5. };
  6. $.post(zm_script.ajax_url, data, function(response) {
  7. $('.zm-content').html (响应) ;
  8. });
  9. });

加载JS文件

在主题函数模板functions.php文件中添加以下代码

  1. //加载JS文件
  2. function load_zm_script ( ) {
  3. wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/my-script.js', array('jquery'), '1.0', true );
  4. wp_localize_script( '我的 - script' , 'zm_script', array(
  5. 'ajax_url' => admin_url( 'admin-ajax.php' )
  6. ));
  7. }
  8. add_action( 'wp_enqueue_script's', 'load_zm_script' ) ;

添加Ajax动作功能

在themefunctiontemplatefunctions.php文件中添加以下代码

  1. {
  2. echo '我不希望搜索爬虫抓取内容';
  3. wp_die();
  4. }

更改文本。

前端调用

最后添加

由于文本内容是通过Ajax加载的,所以搜索爬虫会抓取它。不能,只有正常打开网页才能看到。

上面的Ajax动作函数只加载一段文本,也可以调用WordPress文章。例如随机调用5个项目:

  1. //添加Ajax动作随机调用5个项目
  2. function zm_action_callback() {
  3. echo '
      ';
  4. $ args = array (
  5. 'orderby' => 'rand',
  6. 'posts_per_page' => 5
  7. );
  8. $query = new WP_Query( $args );
  9. while ( $query ->have_posts() ) : $query->the_post();
  10. echo '
  11. ';
  12. echo '
  13. echo the_permalink();
  14. echo ' ">';
  15. echo the_title();
  16. echo '';
  17. echo '
  18. ';
  19. endwhile;
  20. wp_reset_postdata();
  21. echo '';
  22. wp_die();
  23. }

上面的随机文章调用不是静态缓存的。每次刷新时都会随机显示这些项目。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门