web-dev-qa-db-fra.com

des entrées en javascript personnalisé à partir de pages/messages WordPress

J'ai un script que je lance sur chaque page de mon blog WordPress, mais il a une entrée différente à chaque fois.

J'ai par exemple un bouton indice: Le bouton indice doit être différent sur chaque page.

function answerbutton() {
    document.getElementById("answer").innerHTML = 'Readers will see this text as a hint';
}

Ce que je fais maintenant, c'est copier le script dans un emplacement et changer la valeur. Et chargez le script depuis un emplacement différent.

https: // nom de domaine/page2/hint1

Ce que j'aimerais faire, c'est que le script prenne une sorte de zone de texte sur la page de l'éditeur de page. Je peux utiliser une entrée différente sur toutes les pages tout en chargeant le même texte.

Je pensais à quelque chose comme ça:

<textarea =id"textarea">
function answerbutton() {
    document.getElementById("answer").innerHTML = 'ID="textarea"';
}

Mais je ne peux pas le faire fonctionner .. ma compétence javascript est nulle. Quelqu'un pourrait-il m'aider à trouver le bon chemin? Ou donnez-moi des "astuces"?
Existe-t-il un plugin WordPress capable de le faire par exemple?

C'est ce que j'ai ajouté à la boucle? Je suppose que l'index.php:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<p><?php the_content(__('(more...)')); 
$hint1_of_this_page = get_post_meta( get_the_ID(), 'hint1', true );
$hint2_of_this_page = get_post_meta( get_the_ID(), 'hint2', true );
$hint3_of_this_page = get_post_meta( get_the_ID(), 'hint3', true );
$hint4_of_this_page = get_post_meta( get_the_ID(), 'hint4', true );
$answerbutton_of_this_page = get_post_meta( get_the_ID(), 'answerbutton', true );
$correctanswervalidate = get_post_meta( get_the_ID(), 'correctanswervalidate', true );
?></p>
<hr> <?php endwhile; else: ?>

C’est ce que j’ai ajouté au footer.php:

 <script type="text/javascript">
function answerbutton() {
    document.getElementById("answer").innerHTML = '<?php echo $answerbutton_of_this_page; ?>';
}
</script>
<script type="text/javascript">
function hintbutton() {
    document.getElementById("hint1").innerHTML = '<?php echo $hint1_of_this_page; ?>';
}
</script>
<script type="text/javascript">
function hintbutton2() {
    document.getElementById("hint2").innerHTML = '<?php echo $hint2_of_this_page; ?>';
}
</script>

et voici comment j'utilise le champ personnalisé: enter image description here

1
baswijdenesdotcom

Ce dont vous avez besoin, c’est soit un custom field ou un meta box, vous pouvez rechercher de nombreux tutoriels pour créer à la fois le custom field le plus simple, vous pouvez le lire ici , tout d’abord voir les champs personnalisés, pour cela vous devez ouvrir les options d’écran et cocher la case correspondante, ceci dans votre écran de modification de page/post:

enter image description here

alors vous pouvez commencer à créer vos champs personnalisés, ils peuvent être ajoutés pour posts et pages, ici vous pouvez voir que j'en ai créé un appelé 'hint':

enter image description here

alors vous pouvez utiliser le récupérer, comme ceci (dans la boucle):

<?php
// Start the loop.
while (have_posts()) : the_post();
    the_content();

    //here we retrieve the value and save it in a var to use it later
    $hint_of_this_page = get_post_meta( get_the_ID(), 'hint', true );


 // End the loop.
 endwhile;
 ?>

puis utilisez-le comme ceci dans votre code frontal (dans le pied de page je suppose):

<?php global $hint_of_this_page; ?>
function answerbutton() {
    document.getElementById("answer").innerHTML = '<?php echo $hint_of_this_page; ?>';
}

ça va montrer comme ça:

enter image description here

0
David Lee

Dans cet exemple, il saisit la "valeur" du champ de saisie masqué et ouvre une boîte d’alerte. Vous pouvez utiliser la variable mytext comme bon vous semble dans le monde réel.

Au lieu d'utiliser la balise comme celle que j'ai ci-dessous, placez la fonction document.ready () dans le fichier javascript de votre site.

<div class="container">

<input type="hidden" id="someid" value="Your text here">
<button class="somebutton">Click me!</button>

<script>
(function($) {
    $(document).ready(function(){

        $( '.somebutton' ).click( function(e) {
            var mytext = $( '#someid' ).val();
            alert(mytext);

        });

    });
})( jQuery );
</script>

</div>
0
Richard Webster