Frage

Ich hatte das ZD -Video -Plugin für WP lange Zeit verwendet, und jetzt funktioniert es nicht mehr, da ich zu WP 3.0.2 nicht mehr funktioniert. Um ein YouTube -Video mit dem Plugin einzubetten, würde ich einfach schreiben

Zdvideo] URL-of-Youtube-Video [/Zdvideo

Jetzt muss ich zurück zu einfachem Einbettung von YouTube. Wie schreibe ich eine MySQL -Abfrage, nach der nach sucht [zdvideo]*[zdvideo] und ersetzt es durch *?

War es hilfreich?

Lösung

Was ist mit diesen beiden Abfragen?

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

Andere Tipps

Am besten weiß ich, dass MySQL keine große Regexp -Ersatzfunktionalität hat - ganz zu schweigen von der sehr klobigen Regexp -Syntax. Das ist also am einfachsten auf PHP -Ebene. Finden Sie zunächst alle Beiträge mit dem Shortcode ab:

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

Und dann durch das Ergebnis durchlaufen:

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

Oder verwenden Sie das Plugin Suche & Ersetzen, erleichtert die Verwendung von SQL in WP; Verwenden Sie die gleiche Anweisung und geben Sie Ihnen eine GUI für die Suche/Ersetzung von Zeichenfolgen in Inhalten und anderen Tabellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top