wake-up-neo.net

Abrufen bestimmter Post-Werte für ein anderes Div oder Modal

Also habe ich versucht, den gesamten Post von WordPress mit the_excerpt zu durchlaufen. Dann war ich festgefahren, wie ich die Daten eines einzelnen Posts abrufen und weitergeben kann, indem ich auf einen Link oder eine Schaltfläche klicke, um the_content () auf einem modalen Div anzuzeigen.

<?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>

so sieht mein modal aus ..

<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">&times;</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>

ich bin mir nicht sicher, ob das funktionieren wird

<button class="btn btn-primary tag_cnt" onclick="showModal('data')" type="button" value="<?php $post->post_content;?>"></button>

dann benutze eine Funktion wie diese

function showModal(data)
{

   $("#myModal .modal-body").html(data)
   $("#myModal").modal();
}

aber wie übertrage ich mehrere Werte wie the_content und the_title?

1
Jeff Edward

Sie können es auf verschiedene Arten tun:

Json Encode

Dies ist meine Lieblingsmethode, um Daten/Einstellungen/usw. an das Front-End zu übergeben.

PHP

$obj=array(
    'content' => $post->post_content,
    'title' => esc_html( get_the_title() )
);

Die Ausgabe der Schaltfläche sieht nun folgendermaßen aus:

HTML

<button class='btn btn-primary tag_cnt get_button_more_info' type='button' value='<?=json_encode($obj)?>'></button>

Javascript

(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 );
1
Drupalizeme