Domanda

I aveva usato il plug-in video ZD per WP molto tempo, e ora, dal momento che la mia mossa al WP 3.0.2, che non funziona più. Per incorporare un video di YouTube utilizzando il plug-in, vorrei solo scrivere

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

Ora ho bisogno di tornare a pianura incorporamento di YouTube. Come faccio a scrivere una query MySQL che le ricerche per [zdvideo]*[zdvideo] e lo sostituisce con *?

È stato utile?

Soluzione

Che dire di queste due domande?

UPDATE wp_posts SET post_content = REPLACE(post_content, '[zdvideo]', '');
UPDATE wp_posts SET post_content = REPLACE(post_content, '[/zdvideo]', '');

Altri suggerimenti

Best Sono consapevole, MySQL non ha molto di un'espressione regolare sostituzione di funzionalità - per non parlare la sua sintassi regexp molto goffo. Quindi questo è più facile da fare a livello di php. Inizia il recupero tutti i messaggi che hanno lo shortcode:

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

E ciclo poi attraverso il risultato:

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)
  );
}

o usare il plugin Search & Replace , rende facile per uso di sql all'interno WP; utilizzare simili dichiarazioni e darvi una GUI per la ricerca / sostituzione stringhe nel contenuto e altre tabelle.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top