web-dev-qa-db-fra.com

Comment faire <! - more -> un bouton?

Il existe de nombreuses informations sur la manière dont la fonction Lire plus doit afficher un texte différent dans le Codex, mais quel type de filtre faudrait-il utiliser pour le faire afficher <button class="readmorebtn" onclick(permalink)>Read More</button>?

1
torinagrippa

Le lien "(plus ...)" est filtré par the_content_more_link DANS get_the_content() . Vous pouvez vous connecter à cette fonction et la laisser retourner ce que vous voulez.

add_filter('the_content_more_link', 'more_button');
function more_button($more_link) {
    return '<button class="readmorebtn" onclick="' .
        esc_attr('window.location="' . get_permalink() . '"') .
        '">Read more</button>';
}
4
Jan Fabry

Réponse courte: Vous ne le faites pas.

Réponse plus longue et plus utile: Ce que vous devez faire est de vous connecter au filtre the_content_more_link et de changer le lien simple en un élément de style qui peut être style ressemble à un bouton. Le thème que j'utilise sur mon site le fait déjà. Il transforme mon lien en savoir plus en:

<div class="readon-wrap1">
    <div class="readon1-l png"></div>
    <a href="http://mindsharestrategy.com/why-i-run/" class="readon-main">
        <span class="readon1-m png">
            <span class="readon1-r png">More</span>
        </span>
    </a>
</div>

Vous pouvez voir le lien régulier plus lu enfoui au milieu. Les différents <div>s et <span>s qui l’entourent permettent de styliser le lien afin qu’il apparaisse comme un bouton gris uni:

Read More button

Donc, si vous voulez que votre lien ressemble à un bouton, c'est le chemin à suivre. Comme @ sorich87 indiqué dans les commentaires, la balise <button> doit être utilisée dans les formulaires. Donc, si vous utilisez une balise <button> pour votre lien en savoir plus, vous devrez faire face aux problèmes suivants:

  1. Votre site ne validera pas
  2. La disposition de votre site peut confondre les lecteurs d’écran et certains moteurs d’analyse (car ils verront le <button> et effaceront le lien ou jetteront une erreur en cherchant le reste du formulaire).
  3. Vous pourriez rencontrer des conflits si vous imbriquer accidentellement la balise <!--more--> dans le corps d'un formulaire. Vous pouvez dire "je ne ferai pas cela" maintenant, mais les accidents sont des accidents et cela peut encore arriver ... alors l'étrangeté et le chaos s'ensuivront.
5
EAMann