2016-11-26 4 views
1

Je souhaite jouer tous les liens vidéo de mes previews uniquement avec JW Player. J'installe jw player & jw player 7 pour wp. mais cela ne peut affecter que dans les nouveaux messages! comment puis-je le remplacer par le lecteur vidéo WordPress par défaut?Changer le lecteur par défaut en JW Player

+0

Quel type de shortcode Jw ajoute-t-il aux messages? – Benoti

+0

j'ai utilisé ce plugin wordpress.org/plugins/simple-shortcode-for-jw-player-7/... [jw7-video] – Mohammad

Répondre

1

Voici un petit script à appliquer à la demande (décommenter la ligne delete_option pour le faire à nouveau), placez-le dans functions.php.

Ce script trouvera tous les messages et remplacera une ancienne balise shortcode par une nouvelle.

Il utilise get_shortcode_regex() et has_shortcode shortcode pour détecter doit être un shortcode enregistré (ajouter via add_shortcode(), voir dummy_shortcode() à la fin).

add_action('init', 'se_40815010'); 

function se_40815010(){ 

    if(get_option('se_40815010') == true){ 
     return; 
    } 

    $old_tag = 'video'; 
    $new_tag = 'jw7-video'; 

    $args = array(
     'post_type' =>'post', 
     'posts_per_page'=> -1, 
     'post_status' => 'any' 
    ); 

    $posts = new WP_Query($args); 

    foreach($posts->posts as $post){ 
     if(has_shortcode($post->post_content, $old_tag)){ 

      $pattern = get_shortcode_regex(); 

      if ( preg_match_all('/'. $pattern .'/s', $post->post_content, $matches) 
       && array_key_exists(2, $matches) 
       && in_array($old_tag, $matches[2])) { 

        $new_content = str_replace($matches[2][0], $new_tag, $post->post_content); 

        $post_update = array(
         'ID'=> $post->ID, 
         'post_content'=> $new_content 
        ); 

        $update = wp_update_post($post_update, true); 

        if($update && !is_wp_error($update)){ 
         $result .= 'Post ID '.$post->ID.', gallery shortcode modified.</br>'; 
        } 
        else{ 
         $error_string = $update->get_error_message(); 
         $result .= '<div id="message" class="error"><p>' . $error_string .'</p></div>'; 
        } 
      } 
     } 
    } 

    wp_mail(get_option('admin_email'), 'Shortcode replace', $result); 

    update_option('se_40815010', true); 
} 
// delete_option('se_40815010'); 

Avec has_shortcode(), le shortcode doit être enregistré auprès add_shortcode() d'être reconnu. Nous créons un faux code court et l'ancienne étiquette que nous recherchons sera reconnue.

if(get_option('se_40815010')!= true){ 
    add_shortcode('fakegallery', 'dummy_shortcode'); 
} 
function dummy_shortcode($content){ 
    return 'hello world'; 
} 

Espérons que cela aide.

+1

Quel genre de "est devenu bas", aucun message d'erreur, un délai d'attente,? Je ne sais pas exactement pourquoi mais parfois il n'est pas nécessaire de fermer la balise php à la fin de functions.php. – Benoti

+0

Alors, retirez-le, il est impossible de le savoir, vous devez activer le mode de débogage. – Benoti

+0

pouvez-vous partager votre lien de site? – Hitesh