Calzone

Inscris le 23/02/2015 à 08:31
  • Site web
  • Nombre de sujets
    1
  • Nombre de messages
    1
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

Calzone
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:
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.
LoadingChargement en cours