Autor Zpráva
jakre
Profil
Nedaří se mi implementovat funkci vypisující odkaz na komentáře daného článku. Na zvýrazněných místech by se měl nacházet odkaz získaný pomocí <?php comments_link(); ?> *.

<?php comments_number( '', '<span class="comment-count"><a href="ODKAZ"><i class="fa fa-comment-o"></i> 1</a></span>', '<span class="comment-count"><a href="ODKAZ"><i class="fa fa-comment-o"></i> %</a></span>' ); ?>

Zkoušel jsem něco na principu '.$odkaz.', kdy jsem si definoval $odkaz=comments_link();, což bohužel nefunguje. Mohli byste mi, prosím, poradit?
Keeehi
Profil
Nejčistší řešení
<?php comments_number( '', '<span class="comment-count"><a href="'.comments_link().'"><i class="fa fa-comment-o"></i> 1</a></span>', '<span class="comment-count"><a href="'.comments_link().'"><i class="fa fa-comment-o"></i> %</a></span>' ); ?>

Jinak "přiřadit" funkci do proměnné jde taky, ovšem má trochu jinou syntaxi a také trpí různými omezeními.
jakre
Profil
Keeehi:
Toto řešení jsem zkoušel také, ale bohužel není funkční. Ikonky a počet komentářů se zobrazují správně, avšak odkazy se zobrazí vždy, navíc jako prostý text.

Např.: Pokud je v daném příspěvku jeden komentář, zobrazí se ODKAZODKAZ<span class="comment-count"><a href=""><i class="fa fa-comment-o"></i> 1</a></span>, kde ODKAZ je pouze prostý text.
Keeehi
Profil
Možná že za to může nějaký filtr ve wordpressu. Zdroják se mi moc zkoumat nechce. Dá se to zapsat jinak.

<?php
$number = get_comments_number();

if ($number > 0) {
    echo '<span class="comment-count"><a href="'.comments_link().'"><i class="fa fa-comment-o"></i> '.$number.'</a></span>';
} ?>
jakre
Profil
Keeehi:
Děkuji, výsledek tohoto zápisu je blíže požadovanému řešení. Stále se ale odkaz zobrazuje jako prostý text, a to vně tagu <span>.
Lonanek
Profil
jakre:
jako prostý text, a to vně tagu <span>
Musíte funkci správně použít. Funkce nevrací proměnnou, ale přímo vypisuje pomocí echo a v tom může být problém.

Viděl bych to takto:
<?php
$number = get_comments_number();
 
if ($number > 0) {
?>
<span class="comment-count"><a href="<?php comments_link(); ?>"><i class="fa fa-comment-o"></i> <?php echo $number; ?></a></span>
<?php
} ?>
Viz příklad použití funkce.
Keeehi
Profil
Lonanek má pravdu, místo comments_link by mělo být get_comments_link. Po změně by už mohla fungovat jak [#2] tak [#4].
jakre
Profil
Lonanek:
To je pravda, děkuji. Už je mi jasné, proč se mi proměnná [#1] nevracela - v kodexu jsem přehlédl "Use get_comments_link to retrieve the value."


Omlouvám se za svou nepozornost a následné zbytečně založené vlákno a přikládám funkční řešení:

<?php
$number = get_comments_number();
 
if ($number > 0) {
    echo '<span class="comment-count"><a href="'.get_comments_link().'"><i class="fa fa-comment-o"></i> '.$number.'</a></span>';
} ?>

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: