2010-11-23 6 views
0

je veux ajouter le titre <?php the_title(); ?> après mon sélecteur par jqueryappend titre de poste wordpress avec jquery

('a img').after('<span>the title here</span>'); 
+0

il afficher tous les titres après chaque img – Quinx

+0

grâce Dominic bonne idée, mais après je l'ai trouvé img avec toute contenu dans ce – Quinx

Répondre

1

code PHP est interprété sur le serveur, le code jQuery dans le navigateur (longtemps après l'interpréteur PHP a terminé). Ils ne peuvent pas vraiment se voir.

Ce que vous pouvez faire est de mettre la valeur de the_title() dans un élément sur la page, puis utiliser jQuery pour le localiser et l'ajouter:

var title = $('#the_title').text(); 
$('a img').after('<span>' + title + '</span>'); 

[EDIT] Si vous avez plusieurs titres, vous devez les mapper aux images en quelque sorte. Il y a plusieurs façons possibles de le faire:

  • Vous pouvez envoyer le nom de l'image sur le serveur PHP, lui donner l'aspect le titre et nous renverrons. Rechercher $().json().

  • Vous pouvez mettre tous les titres dans un morceau de code HTML que vous rendre invisible en l'enveloppant dans <div style="display: none;">. Dans votre jQuery, vous pouvez ensuite mapper des images sur des titres.

+0

Ou ajouter le titre à une variable javascript directement, mis en avant le code jquery. – windyjonas

0

Ce que dit Aaron.

Mais peut-être en utilisant un attribut de données personnalisé (donc ça valide en HTML5).

Dans votre PHP:

<img data-title="<?php the_title(); ?>" src="..." /> 

-

javascript (jQuery):

$('a img').each(function(){ 
    var title = $(this).attr("data-title"); 
    $(this).after('<span>' + title + '</span>'); 
}); 

-

Untested mais c'est l'idée. Testé.

+0

J'ai eu une erreur dans le code. Je viens de le tester et il est maintenant corrigé. Excuses. Si c'est une travée vide qui ne contient rien, alors cela risque de poser problème avec the_title. The_title renvoie le titre de la publication/page et doit tourner à l'intérieur de la boucle - c'est ce que vous essayez de faire? – Dominic