所以我有数千个Wordpress帖子,其中包含我要删除的width和height属性。例如:
img class="aligncenter size-full wp-image-21011999" title="sometitle"
alt="somealt" src="http://mysite.com/blabla/somefile.jpg" width="xxx" height="xxx"
正如我提到的,我想删除width="xxx" height="xxx"
,我想直接从MySQL中删除它们,不想使用任何PHP函数或类似功能。
我可以通过PhpMyadmin运行查询吗?
我是否可以使用xxx的正则表达式,每个帖子都有不同的颜色。
谢谢!
答案 0 :(得分:1)
你可以编写一个小的PHP脚本(当然在WordPress之外),使用Regex可以很容易地完成这个任务。
<?php
$host = "hostname";
$user = "username";
$pass = "password";
$db = "database";
mysql_connect($host, $user, $pass);
mysql_select_db($db);
$pattern = "/width|height=\"[0-9]*\"/";
$query = "SELECT ID, post_content FROM wp_posts";
while ($row = mysql_fetch_assoc($query)) {
if (preg_match($pattern, $row['post_content']))
{
$row['post_content'] = preg_replace($pattern, "", $row['post_content']);
mysql_query("UPDATE wp_posts SET post_content=" . $row['post_content'] . "WHERE ID=" . $row['ID'];
}
}
?>
无论如何,这就是我的方式。我假设你说“没有PHP函数”,你的意思是你希望数据在数据库中永久更新,而不是每次加载页面时都是动态更新。这应该可以解决问题。编写原始SQL查询来处理此问题可能会复杂得多。
您不需要在WordPress中执行此操作。如果主机具有数据库访问权限,您甚至可以在不同的主机上运行它。
注意:我没有测试过这些。如果您使用它,我会确保在整个网站上应用它之前在数据库的一小部分上运行它。
答案 1 :(得分:0)
我使用过这个脚本并且有一些错误。我纠正了它们并使用它。有用。确保表名称(wpfs_posts)与您的表名称对应的帖子。总是有一个备用课程。
<?php
$host = "localhost";
$user = "nameuser";
$pass = "password";
$db = "namedb";
mysql_connect($host, $user, $pass);
mysql_select_db($db);
$pattern = "/width|height=\"[0-9]*\"/";
$query = "SELECT ID, post_content FROM wpfs_posts";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
if (preg_match($pattern, $row['post_content']))
{
$row['post_content'] = preg_replace($pattern, "", $row['post_content']);
$row['post_content']=mysql_real_escape_string($row['post_content']);
mysql_query("UPDATE wpfs_posts SET post_content='" . $row['post_content'] . "' WHERE ID=" . $row['ID']);
}
}
?>