web-dev-qa-db-fra.com

Comment supprimer en masse les styles en ligne dans le type de message personnalisé Wordpress automatiquement?

Je recherche un moyen pragmatique de supprimer environ 100 pages individuelles de styles en ligne. J'avais entré du contenu pour un client en copiant-collant à partir de Word, qui emportait toutes ces données et l'enveloppait dans des styles en ligne. Cela n'a pas de sens de lire chaque message individuellement. Est-ce que quelqu'un a déjà fait ça? Je serais bien avec n'importe quelle solution qui "fonctionne".

Mon employeur et moi-même vous remercions infiniment pour votre participation.

1
Mitchell Garcia

Je voudrais utiliser le plugin Search Regex . Cela vous permettra d'utiliser une expression régulière pour rechercher et remplacer (dans votre cas supprimer ) les styles en ligne. Assurez-vous de sauvegarder votre base de données avant de commencer!

Une expression régulière simple qui devrait fonctionner pour vous serait

(style=").*"

Il recherchera une chaîne commençant par style=" et contenant un nombre quelconque de caractères jusqu'à atteindre un autre guillemet double ". (Ce serait un style en ligne appliqué à un élément HTML). Vous allez "le remplacer" par une valeur vide (pour le supprimer).

Vous pouvez également tester votre contenu/expression régulière avec Regexr pour vous assurer que celui que je vous ai donné fonctionnera.

Sauvegardez votre base de données avant de commencer. Si quelque chose ne va pas, vous pouvez le restaurer. Il semble que ce plugin vous permette d'effectuer une recherche (à titre de test) avant de lancer une opération de remplacement et d'enregistrement.

3
Jared Cobb

Je recommande de vérifier WP-CLI chaque fois que vous devez effectuer des opérations en bloc sur des publications sans le rendre disponible via une interface traditionnelle. Dans votre cas, vous voudrez peut-être enregistrer une commande similaire à l'exemple ci-dessous, qui parcourra tous vos posts de type 'your_post_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' );

Notez qu'il ne s'agit que d'un exemple, mais cela devrait suffire à vous mettre sur la bonne voie.

0
Steve Grunwell