J'essayais donc de boucler tout le message de wordpress avec the_excerpt. Ensuite, je me suis retrouvé confronté à la difficulté d'obtenir et de transmettre les données d'un message en cliquant sur un lien ou un bouton pour afficher the_content () sur un div modal.
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="post">
<h2><?php the_title(); ?></h2>
<p><?php the_time('F jS, Y'); ?> by <?php the_author(); ?></p>
<div class="blog-content">
<?php the_excerpt(); ?>
</div>
</div>
<?php endwhile; else : ?>
<p><?php esc_html_e( 'Sorry, no posts matched your criteria.' ); ?></p>
voici à quoi ressemble mon modal ..
<div id="myModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
<!-- the_content() in here-->
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
pas sûr que ça va marcher
<button class="btn btn-primary tag_cnt" onclick="showModal('data')" type="button" value="<?php $post->post_content;?>"></button>
puis utilisez une fonction comme celle-ci
function showModal(data)
{
$("#myModal .modal-body").html(data)
$("#myModal").modal();
}
mais comment puis-je transférer plusieurs valeurs comme the_content et the_title?
Vous pouvez le faire de différentes manières:
C’est ma façon préférée de transmettre des données/paramètres/etc. au serveur frontal.
$obj=array(
'content' => $post->post_content,
'title' => esc_html( get_the_title() )
);
Maintenant, la sortie du bouton sera comme ceci:
<button class='btn btn-primary tag_cnt get_button_more_info' type='button' value='<?=json_encode($obj)?>'></button>
(function($) {
$('.get_button_more_info').on('click',function() {
var obj = $(this).val();
obj = JSON.parse(obj);
$("#myModal .modal-body").html(obj.content)
$("#myModal .modal-title").html(obj.title)
$("#myModal").modal();
});
})( jQuery );