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
Répondre
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.
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
Alors, retirez-le, il est impossible de le savoir, vous devez activer le mode de débogage. – Benoti
pouvez-vous partager votre lien de site? – Hitesh
Quel type de shortcode Jw ajoute-t-il aux messages? – Benoti
j'ai utilisé ce plugin wordpress.org/plugins/simple-shortcode-for-jw-player-7/... [jw7-video] – Mohammad