0

そのため、幅と高さの属性を削除したい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 に使用できる正規表現はありますか。

ありがとうございました!

4

2 に答える 2

1

正規表現を使用してこれを非常に簡単に実現する小さな PHP スクリプトを (もちろん WordPress の外部で) 作成できます。

<?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 内でこれを行う必要はありません。ホストがデータベースにアクセスできる場合は、別のホストでこれを実行することもできます。

注:私はこれをテストしていません。使用する場合は、サイト全体に適用する前に、データベースの小さなサブセクションで実行するようにしてください.

于 2013-01-16T22:59:50.217 に答える