如何自动批量删除WordPress自定义帖子中的内联样式?

时间:2014-09-19 作者:Mitchell Garcia

我正在寻找一种实用的方法来删除大约100多个独立页面的内联样式。我通过复制和粘贴Word输入了一个客户端的内容,Word将所有数据都带在一起,并以内联样式将其打包。单独浏览每个帖子是没有意义的。以前有人这样做过吗?任何“有效”的解决方案我都会接受

我和我的雇主非常感谢您的任何意见。

2 个回复
最合适的回答,由SO网友:Jared Cobb 整理而成

我会使用Search Regex plugin. 它将允许您使用regular expression 查找和替换(在您的情况下,删除)内联样式。开始之前,请确保备份数据库!

应该适用于您的简单正则表达式是

(style=").*"
它将查找以开头的字符串style=" 并包含任意数量的字符,直到它遇到另一个双引号为止". (这将是应用于HTML元素的内联样式)。您将用空值“替换”它(以删除它)。

还可以使用测试内容/正则表达式Regexr 以确保我给你的那一个有效。

Backup your database 开始之前。如果出现问题,您可以恢复它。看起来此插件将允许您在运行替换之前进行搜索(作为测试)(&;拯救

SO网友:Steve Grunwell

我建议退房WP-CLI 任何时候,您都需要在POST上执行批量操作,而无需通过传统界面进行访问。对于您的情况,您希望注册一个类似于以下示例的命令,该命令将遍历所有类型为“your\\u post\\u type”的帖子:

<?php if ( ! defined( \'WP_CLI\' ) ) return;

/**
 * Basic structure for http://wordpress.stackexchange.com/q/161963/13937
 *
 * @package wp-cli
 */
class Wpse161963_Command extends WP_CLI_Command {

  /**
   * Clean posts
   *
   * ## OPTIONS
   *
   * ## EXAMPLES
   *
   * wp wpse161963 scrub
   *
   */
  public function scrub( $args, $assoc_args ) {
    $args = array(
      \'post_type\' => \'your_post_type\',
      \'posts_per_page\' => -1
    );
    $posts = get_posts( $args );

    foreach ( $posts as $post ) {

      // Scrub the post content and save the results

      // Print a success message
      WP_CLI::success( sprintf( __( \'Post "%s" has been scrubbed!\', \'wpse161963\' ), $post->post_title );

    }
  }

}

WP_CLI::add_command( \'wpse161963\', \'Wpse161963_Command\' );
请注意,这只是一个示例,但它应该足以让您走上正确的道路。

结束

相关推荐

theme functions (hooks)

WordPress已经提出了这个问题,但没有答案。我只是想在这个论坛上试试,如果有人知道的话,因为我也有同样的问题。要使用jquery滑块编辑我的主题,如何转到该脚本?,显示“$主题->挂钩(\'content\\u before\');”在content div标记中。有人能帮忙吗?我的主题索引。php包含以下内容<div id=\"main\"> <?php $theme->hook(\'main_before\'); ?> &#x