使用MySQL

时间:2015-05-29 15:26:20

标签: php mysql sql wordpress

我正在将几千篇文章从一个旧的Wordpress网站转移到一个新网站。每篇文章都包含至少一个,并且可能包含文本本身的少数出站链接。我们需要手动审核所有网址。理想情况下,我会有一个URL列表,我可以对它进行排序,以便快速完成该过程。

我正在寻找一种方法来提取所引用的每个网址的列表以及帖子的ID,以便我们可以在必要时返回并编辑它。

我的第一次尝试很简单,比如" SELECT ID,post_content FROM wp_posts WHERE post_content LIKE'%http%';" ,但那只是得出了(差不多)所有帖子的清单。

我猜这有两个部分,第一部分是每个网页都有一个热门,而不仅仅是每篇文章,因为文章可能包含一个或多个网址。也许是某种加入?我会开始这样做,因为我认为这是我能想到的。

第二部分将修改结果,以便他们只显示URL本身。我对MySQL很有经验,但根本没有使用任何字符串操作功能。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在这里回答我自己的问题。我无法弄清楚如何在MySQL中做到这一点,所以我在PHP中做到了。我仍然很想知道是否可以在SQL中做到这一点,因为这样可以节省几步。

这是完成工作的PHP,将逗号分隔的文本转储到我可以保存的屏幕并导入到Excel中以便轻松排序和查看:

global $wpdb;
$sql = "SELECT ID, post_content FROM wp_posts WHERE (post_content LIKE '%href=%');";

$results = $wpdb->get_results($sql, ARRAY_A);

foreach($results as $r) {
    $arr = explode('href="', $r[post_content]);
    foreach($arr as $key => $a) {
        if ($key > 0) {
            $x = explode('"', $a);
            echo $r[ID].','.$x[0].'<br/>';
        }
    }
}