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>
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:
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'
:
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:
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>