Buscar y reemplazar texto en todas las publicaciones

2

Había usado el complemento de video ZD para WP por mucho tiempo, y ahora, desde que me mudé a WP 3.0.2, ya no funciona. Para incrustar un video de YouTube usando el complemento, simplemente escribiría

  

[zdvideo] url-of-youtube-video [/ zdvideo]

Ahora necesito volver a la integración de YouTube. ¿Cómo escribo una consulta de MySQL que busca [zdvideo]*[zdvideo] y la reemplaza con * ?

    
pregunta GPX 06.12.2010 - 13:57

3 respuestas

5

¿Qué hay de estas dos consultas?

UPDATE wp_posts SET post_content = REPLACE(post_content, '[zdvideo]', '');
UPDATE wp_posts SET post_content = REPLACE(post_content, '[/zdvideo]', '');
    
respondido por el TheDeadMedic 06.12.2010 - 14:37
5

Lo mejor que sé es que MySQL no tiene una gran funcionalidad de reemplazo de expresiones regulares, sin mencionar su sintaxis de expresiones regulares muy torpe. Así que esto es más fácil de hacer a nivel de php. Comience por buscar todas las publicaciones que tengan el código abreviado:

$posts = $wpdb->get_results("
SELECT ID, post_content
FROM $wpdb->posts
WHERE post_content LIKE '%[zdvideo]%'
");

Y luego recorre el resultado:

foreach ($posts as $post) {
  $post->post_content = preg_replace(
    "/\[zdvideo\](.+?)\[\/zdvideo\]/",
    "$1", # $1 holds the url... format as needed
    $post->post_content);

  # Be sure to verify on a few posts before actually saving...
  # var_dump($post->post_content);

  $wpdb->query("
  UPDATE $wdpb->posts
  SET post_content = '" . $wpdb->escape($post->post_content) . "'
  WHERE ID = " . intval($post->ID)
  );
}
    
respondido por el Denis de Bernardy 06.12.2010 - 14:25
1

o use el complemento Search & Reemplazar , facilita el uso de sql dentro de WP; use la declaración similar y proporcione una interfaz gráfica de usuario para buscar / reemplazar cadenas en el contenido y otras tablas.

    
respondido por el bueltge 06.12.2010 - 23:16

Lea otras preguntas en las etiquetas