批量导出WordPress访客的名字、URL、邮箱进行回访

日期: 标签:WordPress教程
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我

感谢xiaojie.me的投稿;为博客带去流量,欢迎投递分享优秀文章

     WordPress是一个强大的博客系统,相信很多朋友都在用它来搭建博客。WordPress提供了很强大的留言功能,访客可以给文章或者页面发表评论,发表评论的时候会留下留言者的昵称、URL以及邮箱,博主可以通过这些信息联系到留言者,但是在WordPress管理后台 - 评论那里,看到的是每篇评论的留言者信息,一名留言这可以多次留言,找留言者比较困难。现在我想在一个单独的页面显示我的博客至今为止所有留言者的昵称、URL 以及邮箱,且信息不重复,那咋办呢?看下面的内容就知道了。

  1. 新建一个PHP文件命名为"export-url.php"
  2. 在这文件中插入以下代码;
    <?php 
    header('Content-Type:text/html;charset=utf-8');
    $conn = @mysql_connect('localhost', '这里改成数据库用户名', '这里改成数据库用户密码') or die("Datebase Could not be connected: " . mysql_error());
    mysql_select_db('这里改成博客的数据库名称');
    // 排除没有填写 URL 的数据
    mysql_query("set names 'utf8'");
    $result = mysql_query("SELECT DISTINCT comment_author_url,comment_author_email,comment_author FROM wp_comments WHERE
    comment_author_url != '' AND comment_type = '' AND comment_author_url != 'http://'", $conn);
    while($row = mysql_fetch_array($result)) {
    	echo $row["comment_author"]." ";
    	echo "<a target='_blank' href='";
    	echo $row["comment_author_url"];
    	echo "'>";
    	echo $row["comment_author_url"]." ";
    	echo "</a>";
    	echo $row["comment_author_email"]."<br />";
    }
    mysql_free_result($result);
    ?>
  3. 修改上面代码中的Mysql服务器地址、数据库用户名、数据库密码、Mysql数据库名字(即代码中中文标注部分,另外注意数据库表前缀wp_,其他部分不需修改)
  4. 保存文件后上传到你空间的根目录
  5. 访问 "http://你的网站URL/export-url.php" 就可出现前面是访客昵称,后面是网址,最后是邮箱的批量显示页面了!以上代码不会输出引用通告(pingkback、trackback)的信息

文章出处:小杰博客
文章原文地址:http://www.xiaojie.me/2010/09/bulk-export-the-name-of-wordpress-visitors-url-email-for-a-return-visit.html

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜即刻 https://www.ludou.org/wordpress-export-commenter-info.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者。

24 条留言

点此留言
  1. akasuna akasuna

    嗯,很好
    可以再稍微改一下,但是要把 spam 排除掉,并且统计出留言数目,留言数最多的排在最前面,优先回访

    SELECT COUNT( * ) AS commentcount, comment_author_url, comment_author_email, comment_author
    FROM wp_comments
    WHERE comment_author_url != ''
    AND comment_type = ''
    AND comment_author_url != 'http://'
    AND comment_approved = 1
    GROUP BY comment_author_url, comment_author_email, comment_author
    ORDER BY commentcount DESC
    LIMIT 0 , 30

    • Ludou

      @akasuna 想得很周到。另外comment_approved是varchar,所以 1 应该用引号括起来

      • akasuna akasuna

        @Ludou 对,应该加引号

        不过我没加引号,好像也能执行

        • Ludou

          @akasuna SQL对这个没有严格限制,但是作为编程人员要对自己严格要求。

    • xiaojie.me xiaojie.me

      @akasuna 我已经按照您的方法修改了一下,修改后的文件请去我的博客查看,看是否有错误的地方。
      现在spam已经排除掉了,留言数最多的排在最前面了,不过我把LIMIT 0 , 30去掉了,我想显示所有访客的信息。
      现在我想出现每个访客的留言数目(出现在每个访客信息后面)和留过言的访客的数目(显示在页面开头,作为一个统计信息),应该再怎么添加代码呢?谢谢啦

    • tata

      @akasuna 很不错。

  2. Dianso Dianso

    输出了,但有些名字乱码了

    • xiaojie.me xiaojie.me

      @Dianso mysql_query("set names 'utf8′");已经改成utf8编码格式了,应该不会输出乱码了啊

      • Ludou

        @xiaojie.me 应该是:
        mysql_query("set names 'utf8'");

        注意引号

  3. 有点蓝 有点蓝

    在小邪那里看到了这样的教程,不过当时没学会,但愿这次可以成功。

    • xiaojie.me xiaojie.me

      @有点蓝 小邪是谁啊?呵呵。。。可能是因为我的代码转义,所以直接复制了可能不行,这次我博客提供文件下载了,你可以试试看哦

      • 有点蓝 有点蓝

        @xiaojie.me 就是邪罗刹博客。
        好的我再试试。

  4. 有点蓝 有点蓝

    这个php应该保存成什么格式呢?ansi还是utf8啊?

    • Ludou

      @有点蓝 只要没有汉字,什么格式都行。

      • 有点蓝 有点蓝

        @Ludou 我照做之后,只有在opera下里边的中文无乱码,FF和世界之窗下,评论者的名字只要是汉字的都是乱码。。。

  5. 好东西分享 好东西分享

    不错,赞一个

  6. 优得客 优得客

    导出来干嘛呢?发送垃圾邮件,还是?

    • Ludou

      @优得客 "博主可以通过这些信息联系到留言者"
      具体目的文章中已经说了,请认真阅读。

  7. 布客空间 布客空间

    很不错的东西!目前评论比较少,希望以后评论多的时候能够用得上!

  8. niao niao

    不错,收藏了

  9. 不知不觉 不知不觉

    为啥打开之后汉语名字都是显示的问号呢?编码问题?要怎么改?

    • Ludou

      @不知不觉 <?php

      改成:

      <?php
      header('Content-Type:text/html;charset=utf-8');

  10. John John

    嗯,大家都是高手。学习了。如果要是这段代码放到当前主题的目录下,又该如何操作呢?

  11. 左尔德 左尔德

    一直想做这样一个页面,感谢

发表留言