Autor Zpráva
Lubosh
Profil
Chtěl bych přidat část adresy do generovaného odkazu ve wordpressu (nejsem programátor):

Tak abych místo:
<a href="htttp://www.stranka.cz/2012/">2012</a>

Dostal toto:
<a href="htttp://www.stranka.cz/2012/?post_type=uredni-deska">2012</a>

Mám nyní rozepsáno toto (samozřejmě nefunkční):

<?php
$variable = wp_get_archives();
$variable = str_replace(array('<a href="'), '<a href="?post_type=uredni-deska', $variable);
echo $variable;
?>


Může někdo poradit?

Poznámka: wp_get_archives() generuje toto:
<li><a href="htttp://www.stranka.cz/2012/">2012</a></li>
<li><a href="htttp://www.stranka.cz/2011/">2011</a></li>
<li><a href="htttp://www.stranka.cz/2010/">2010</a></li>
abc
Profil
Lubosh:
Toto funguje, ale nezaručuji, že nebude problematické do budoucna kvuli nějakým konfliktům, jako např. pokud se ve $variables vyskytne na dalším místě /"
<?php
$variable = wp_get_archives();
$variable = str_replace('/"', '/?post_type=uredni-deska"', $variable);
echo $variable;
?>
Tori
Profil
Lubosh:
$variable = preg_replace('~(href="[^"]+?)/?"~', '$1/?post_type=uredni-deska"', $variable);
Pokud na konci URL chybí lomítko, bude doplněno. Tohle chování můžete zrušit smazáním označených částí.
Lubosh
Profil
abc:
Tak u tohoto příkladu není žádný výsledek:
$variable = str_replace('/"', '/?post_type=uredni-deska"', $variable);

Pokud odstraním uvozovky tak ano (ale změní to adresu blbě samozřejmě):
$variable = str_replace('/', '/?post_type=uredni-deska', $variable);



Tori:

Tento postup taky bez výsledku:
$variable = preg_replace('~(href="[^"]+?)/?"~', '$1/?post_type=uredni-deska"', $variable);

Když opět zruším uvozovky takto:
$variable = preg_replace('~(href=[^"]+?)/?~', '$1/?post_type=uredni-deska', $variable);

tak dostanu požadovaný odkaz ale obrázeně :-):

<a href="/?post_type=uredni-deskahttp://www.stranka.cz/2012/">2012</a>
abc
Profil
Lubosh:
Ať to spouštim, jak to spouštim, vždycky mi to vrátí správně...
$variable='<li><a href="http://www.stranka.cz/2012/">2012</a></li>
<li><a href="http://www.stranka.cz/2011/">2011</a></li>
<li><a href="http://www.stranka.cz/2010/">2010</a></li>';
$variable = str_replace('/"', '/?post_type=uredni-deska"', $variable);
echo $variable;
vypíše:
<li><a href="http://www.stranka.cz/2012/?post_type=uredni-deska">2012</a></li>
<li><a href="http://www.stranka.cz/2011/?post_type=uredni-deska">2011</a></li>
<li><a href="http://www.stranka.cz/2010/?post_type=uredni-deska">2010</a></li>

Předpokládam tedy, že jsou vstupní data jiná?
Lubosh
Profil
abc:
Ano .. takto mě to jde taky ale když mám místo:

$variable='<li><a href="http://www.stranka.cz/2012/">2012</a></li>
<li><a href="http://www.stranka.cz/2011/">2011</a></li>
<li><a href="http://www.stranka.cz/2010/">2010</a></li>';
$variable = str_replace('/"', '/?post_type=uredni-deska"', $variable);
echo $variable;

Tohle

$variable = wp_get_archives();
$variable = str_replace('/"', '/?post_type=uredni-deska"', $variable);
echo $variable;

Tak to nejede
Tori
Profil
Lubosh:
Co přesně vypíše var_dump(wp_get_archives()); ? (A zkopírujte prosím ze zdrojáku, pokud by náhodou ta funkce vracela některé znaky převedené na entity apod.)

↓ tak to je zvláštní, mělo by to fungovat (str_replace i preg_replace). Snad někdo přijde na příčinu, já netuším.
Lubosh
Profil
Tori
<li><a title="2012" href="http://localhost/borotice/2012/">2012</a></li>
<li><a title="2011" href="http://localhost/borotice/2011/">2011</a></li>
NULL

toto
abc
Profil
Lubosh:
Vážně mezi $variable = wp_get_archives(); a vypisem $variable není žádný další kód?
Toto totiž samozřejmě funguje správně:
$variable='<li><a title="2012" href="http://localhost/borotice/2012/">2012</a></li>
<li><a title="2011" href="http://localhost/borotice/2011/">2011</a></li>
NULL';
$variable = str_replace('/"', '/?post_type=uredni-deska"', $variable);
echo $variable;

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: