我正在将几千篇文章从一个旧的Wordpress网站转移到一个新网站。每篇文章都包含至少一个,并且可能包含文本本身的少数出站链接。我们需要手动审核所有网址。理想情况下,我会有一个URL列表,我可以对它进行排序,以便快速完成该过程。
我正在寻找一种方法来提取所引用的每个网址的列表以及帖子的ID,以便我们可以在必要时返回并编辑它。
我的第一次尝试很简单,比如" SELECT ID,post_content FROM wp_posts WHERE post_content LIKE'%http%';" ,但那只是得出了(差不多)所有帖子的清单。
我猜这有两个部分,第一部分是每个网页都有一个热门,而不仅仅是每篇文章,因为文章可能包含一个或多个网址。也许是某种加入?我会开始这样做,因为我认为这是我能想到的。
第二部分将修改结果,以便他们只显示URL本身。我对MySQL很有经验,但根本没有使用任何字符串操作功能。
提前感谢您的帮助。
答案 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/>';
}
}
}