Thierry M.
2013-07-31 08:29:16 UTC
Bonjour,
Voila : je cherche à passer dans un plugin WordPress le nom du site et
l'adresse url au lieu de modifier le plugin a chaque fois
soit la fonction :
function restore_feed_link() {
echo '<link rel="alternate" type="application/rss+xml" title="flux des
articles de NOM_DU_SITE" href="URL_DU_SITE/?feed=rss".' />'."\n";
}
après un
add_action('wp_head', 'restore_feed_link');
puis je lis ce qu'il ya dans la liste des flux et l'adresse de lien
et...
*SI je met tout "a la main", évidemment, ça marche*
mais si je veux récupérer le nom et l'url du site, rien ne va plus !
par exemple pour le nom du site :
bloginfo('name ou url'); // c'est déjà un echo !
donc impossible à caser dans la ligne tel quel (ou si on me dit
comment...)
donc je me suis dit: je vais découper l'écho en morceaux, ils vont se
concaténer :
echo '<link rel="alternate" type="application/rss+xml" title="';
echo "flux des articles de ";
bloginfo();
etc.
ben ... seul le premier mot de "flux des articles de " apparait
si je mets une variable, ça ne change rien (ça donne fluxNOM_DU_SITE)
si je le mets dans la première ligne, j'ai tout, mais je n'ai plus de
bloginfo()
pire : soit 3 variables $a, $b, $c avec $c=$a.$b
ben je lis (dans les feed) $a et c'est tout quand j'appelle $c, alors
que $c est correct si je fais un echo dans la page !
et c'est encore pire avec l'url : si je fais $b = "/?feed=rss";
$c = url du site . $b; //si j'affiche un echo, c'est correct
mais si j'envoie $c dans la fonction, j'obtient...
ulr du site$c ($c : les 2 caractères, litteralement) la ça devient le
délire complet, comme si une variable définie directement ou provenant
de la concatenation de 2 n'était pas la même chose (ici oui, la, non)
et contient en outre... son nom (?)
j'aurai vu ça en vb, en pascal, en assembleur, j'aurai crié au bug
Du coup j'ai mis des à la place des espaces pour ne pas avoir
que le premier mot, puis découpé a mort echo et ça marche
// Remet le lien de flux des articles
function restore_feed_link() {
echo '<link rel="alternate" type="application/rss+xml" title=';
bloginfo();
echo
" "."»"." "."Flux"." "."des"." "."articles";
echo ' href= ';
bloginfo(url);
echo "/?feed=rss".' />'."\n";
}
===
n'empêche que c'est zarbi complet !
pourquoi je ne peux pas faire en une ligne ce que je fais avec
plusieurs ? pourquoi l'appel de lien avec link ne prend que le premier
mot ou pas les suivants selon si echo est découpé ou non ?
NB avec <a href, tout fonctionne, dans tous les cas, les variables
restne t ce qu'elles sont et on peut même utiliser bloginfo direct;
mais c'est inutilisable ici (ou j'ajoute un lien feed) ou j'ai besoin
de <link rel=... etc.
mercithankyou
Voila : je cherche à passer dans un plugin WordPress le nom du site et
l'adresse url au lieu de modifier le plugin a chaque fois
soit la fonction :
function restore_feed_link() {
echo '<link rel="alternate" type="application/rss+xml" title="flux des
articles de NOM_DU_SITE" href="URL_DU_SITE/?feed=rss".' />'."\n";
}
après un
add_action('wp_head', 'restore_feed_link');
puis je lis ce qu'il ya dans la liste des flux et l'adresse de lien
et...
*SI je met tout "a la main", évidemment, ça marche*
mais si je veux récupérer le nom et l'url du site, rien ne va plus !
par exemple pour le nom du site :
bloginfo('name ou url'); // c'est déjà un echo !
donc impossible à caser dans la ligne tel quel (ou si on me dit
comment...)
donc je me suis dit: je vais découper l'écho en morceaux, ils vont se
concaténer :
echo '<link rel="alternate" type="application/rss+xml" title="';
echo "flux des articles de ";
bloginfo();
etc.
ben ... seul le premier mot de "flux des articles de " apparait
si je mets une variable, ça ne change rien (ça donne fluxNOM_DU_SITE)
si je le mets dans la première ligne, j'ai tout, mais je n'ai plus de
bloginfo()
pire : soit 3 variables $a, $b, $c avec $c=$a.$b
ben je lis (dans les feed) $a et c'est tout quand j'appelle $c, alors
que $c est correct si je fais un echo dans la page !
et c'est encore pire avec l'url : si je fais $b = "/?feed=rss";
$c = url du site . $b; //si j'affiche un echo, c'est correct
mais si j'envoie $c dans la fonction, j'obtient...
ulr du site$c ($c : les 2 caractères, litteralement) la ça devient le
délire complet, comme si une variable définie directement ou provenant
de la concatenation de 2 n'était pas la même chose (ici oui, la, non)
et contient en outre... son nom (?)
j'aurai vu ça en vb, en pascal, en assembleur, j'aurai crié au bug
Du coup j'ai mis des à la place des espaces pour ne pas avoir
que le premier mot, puis découpé a mort echo et ça marche
// Remet le lien de flux des articles
function restore_feed_link() {
echo '<link rel="alternate" type="application/rss+xml" title=';
bloginfo();
echo
" "."»"." "."Flux"." "."des"." "."articles";
echo ' href= ';
bloginfo(url);
echo "/?feed=rss".' />'."\n";
}
===
n'empêche que c'est zarbi complet !
pourquoi je ne peux pas faire en une ligne ce que je fais avec
plusieurs ? pourquoi l'appel de lien avec link ne prend que le premier
mot ou pas les suivants selon si echo est découpé ou non ?
NB avec <a href, tout fonctionne, dans tous les cas, les variables
restne t ce qu'elles sont et on peut même utiliser bloginfo direct;
mais c'est inutilisable ici (ou j'ajoute un lien feed) ou j'ai besoin
de <link rel=... etc.
mercithankyou
--
Thierry
Lecteur de news de course:
http://www.mesnews.net
Thierry
Lecteur de news de course:
http://www.mesnews.net