所以我有数千个 WordPress 帖子,其中包含我想要删除的宽度和高度属性。例如:
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。
谢谢!
最佳答案
您可以编写一个小型 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 中执行此操作。您甚至可以在不同的主机上运行它,前提是该主机具有数据库访问权限。
注意:我还没有测试过这些。如果您使用它,我会确保在整个站点应用它之前在数据库的一小部分上运行它。
关于mysql - 如何从 WordPress (MySQL) 中的多个帖子中删除宽度和高度属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14368243/