2

私はmysqlがあまり得意ではないので、助けが必要です。

wordpress ブログから特定のリンクを削除しようとしています。複数のドメインへの発信リンクが多数あり、そのうちの 1 つへのリンクだけを削除したいと考えています。たとえば、dontneedlink.com につながる、または dontneedlink.com/(いくつかの子ページ) で始まるすべてのリンク

私はすでに試しています

UPDATE wp_posts SET post_content = REPLACE (
post_content,
'Item to replace here',
Replacement text here');

しかし、私にはたくさんのキーワードがあり、組み合わせがたくさんあるので、これは私にとっては神ではありません。

そのため、dontneedlink.com を含むリンクを認識し、href テキストを削除してキーワードをそのままにしておくには、ある種のクエリが必要です。

<  a href=”http:// dontneedlink.com”&gt;Test</a> -> Test 

<  a href=”http:// dontneedlink.com”&gt;Test Again</a> -> Test Again

<  a href=”http:// dontneedlink.com/childpage”&gt;Test Again 2</a> -> Test Again 2

これはまったく可能ですか?これにより、ある投稿から別の投稿に移動して手動で削除する代わりに、多くの時間を節約できます.

4

2 に答える 2

2

「いいね」を使用して投稿を検索し、部分文字列インデックスを使用して不要なコンテンツを削除する必要があります

substring_index( substring_index(table.column, 'href=”', -1), '"',1)あなたのリンクを抽出します

mysql> SELECT REPLACE(table_column, substring_index( substring_index(table.column, 'href=”', -1),  '"',1) , '');

これにより、リンクなしのテキストが表示されます。あなたは残ります

<  a href=””&gt;Test</a>

次に、別の置換または部分文字列インデックスを実行して、不要な残りを削除します。

最後に、次の場所で適切なフィルターを使用して実行します。

UPDATE wp_posts SET post_content = REPLACE (
post_content,
'Item to replace here',
Replacement text here')
where mycolumn like "%dontneedthisdomain.com%"
于 2013-10-14T09:33:48.207 に答える