使用wp-cli并删除每个帖子的第一张图像

时间:2018-01-21 作者:ZgrKARALAR

我是改变我的网站模板,然后我有一个问题,以前使用的模板是没有缩略图的地方张贴这个我添加所有我的文章第一个图像,现在在新的模板上显示每个帖子两张图片。

第一张特色图片,在我为这个问题添加图片后,我想清除我所有帖子上的第一张图片。

我所尝试的,

1) 手动操作,但我的网站有40000篇帖子,这意味着手动操作并不容易。

2) 我尝试使用wp cli,然后使用以下代码

wp search-replace \'/<img[^>]+\\>/i\' \'\' wp_posts --regex --allow-root
但结果是

+----------+-----------------------+--------------+------+
| Table    | Column                | Replacements | Type |
+----------+-----------------------+--------------+------+
| wp_posts | post_content          | 0            | PHP  |
| wp_posts | post_title            | 0            | PHP  |
| wp_posts | post_excerpt          | 0            | PHP  |
| wp_posts | post_status           | 0            | PHP  |
| wp_posts | comment_status        | 0            | PHP  |
| wp_posts | ping_status           | 0            | PHP  |
| wp_posts | post_password         | 0            | PHP  |
| wp_posts | post_name             | 0            | PHP  |
| wp_posts | to_ping               | 0            | PHP  |
| wp_posts | pinged                | 0            | PHP  |
| wp_posts | post_content_filtered | 0            | PHP  |
| wp_posts | guid                  | 0            | PHP  |
| wp_posts | post_type             | 0            | PHP  |
| wp_posts | post_mime_type        | 0            | PHP  |
+----------+-----------------------+--------------+------+
Success: Made 0 replacements.
3)我在功能上尝试此代码。php

function remove_first_image ($content) {
if (!is_page() && !is_feed() && !is_feed() && !is_home()) {
$content = preg_replace("/<img[^>]+\\>/i", "", $content, 1);
} return $content;
}
add_filter(\'the_content\', \'remove_first_image\');
在这个解决方案中,我解决了我的问题,但我不想使用这个解决方案,因为我正在搜索任何其他解决方案WP-CLI.

1 个回复
SO网友:swissspidy

根据WP-CLI docs for the wp search-replace command (和wp db search, 为此,您必须传递不带分隔符的搜索字符串,并单独传递任何标志。

而不是:

wp search-replace \'/<img[^>]+\\>/i\' \'\' wp_posts --regex --allow-root
您可以使用以下内容:

wp search-replace \'<img[^>]+\\>\' \'\' wp_posts --regex --allow-root --regex-flags=\'i\' --regex-delimiter=\'/\'
我刚刚在一个安装上测试了这个,我得到了很多结果。

Edit: WP-CLI确实还不支持某种限制参数来仅替换第一次出现的参数。然而,我打开了an issue 因此,这在未来是可能的。

结束