le 23/02/2015 à 08:34
Expression régulière wordpress ne fonctionne pas
Bonjour,
je débute avec les expressions régulières grâce au très bon tuto d'openclassrooms pour le codage d'un thème wordpress. J'essaie d'utiliser la fonction preg_replace_callback pour récupérer une valeur d'un attributs dans un bout de code généré par un plugin. J'applique cette fonction sur mon $content mais la fonction me retourne toute la chaîne, je précise que je code en local avec Wamp. J'ai testé mon expression régulière sur https://regex101.com/ et celle-çi marche parfaitement. Voiçi mon code:
Ma fonction est définie dans mon functions.php comme suit:
J'appel cette fonction dans mon content.php:
J'appel mon content.php dans mon index.php:
Lorsque je regarde le code source généré, ma fonction ne semble pas remplacer correctement.
Merci pour l'aide.
je débute avec les expressions régulières grâce au très bon tuto d'openclassrooms pour le codage d'un thème wordpress. J'essaie d'utiliser la fonction preg_replace_callback pour récupérer une valeur d'un attributs dans un bout de code généré par un plugin. J'applique cette fonction sur mon $content mais la fonction me retourne toute la chaîne, je précise que je code en local avec Wamp. J'ai testé mon expression régulière sur https://regex101.com/ et celle-çi marche parfaitement. Voiçi mon code:
Ma fonction est définie dans mon functions.php comme suit:
function btn_play_index_id($content) {
return preg_replace_callback('#data-playlist="([0-9]+)"#',
create_function ('$matches', 'return ($matches[1]);'), $content);
}
add_filter( 'the_content', 'btn_play_index_id' );
J'appel cette fonction dans mon content.php:
$id = get_the_ID();
$post = get_post($id);
$content = apply_filters('the_content', $post->post_content);
$content = get_the_content();
$btn_play_index_id = btn_play_index_id($content);
echo '<a href="#"><img class="fap-add-playlist posts-playlists-btn-player" data-enqueue="no" data-playlist="' . $btn_play_index_id . '" value="PLAY" type="submit" ></a>';
J'appel mon content.php dans mon index.php:
if (have_posts()) :
while ( have_posts() ) : the_post();
get_template_part( 'content', get_post_format() );
endwhile;
endif;
Lorsque je regarde le code source généré, ma fonction ne semble pas remplacer correctement.
Merci pour l'aide.