Post-Meta speichern und wiederverwenden

Lesezeit: 4 Minuten

Benutzer-Avatar
Steve Kim

Also habe ich zwei Dateien (Lesen Sie die “Edit: Clarification“zuerst unten)

first.php:

<div class="rfp_hide " >
    <?php   
    $args = array( 
        'post_type' => 'post',
        'paged'=>$paged,
        'posts_per_page' => 15,         
        'orderby' => 'date',            
        'order' => 'DESC'
        );
    $loop = new WP_Query( $args );
    $id = get_the_ID();     
    while ( $loop->have_posts() ) : $loop->the_post(); 
    ?>

     <?php the_title(); ?>
     <?php the_content(); ?>
     <?php echo '<button class="button" data-post_id="' .$id. '">' ;?>
         <?php echo get_post_meta($post->ID, 'rh_type', true); ?>   
     <?php echo '</button>';?>  
     <div class="new_content">
          <!--Ajax new content goes here-->
     </div>
 </div>

Dadurch werden Beiträge mit angezeigt title, content, button mit einem benutzerdefinierten Meta (“rh_type”). Wenn auf die Schaltfläche geklickt wird, lädt sie eine andere Datei (second.php) über Ajax wie unten innerhalb new_content div.

Second.php

 <div class="second_content">
     <?php the_title(); ?>
     <?php the_content(); ?>
     <?php echo get_post_meta($post->ID, 'rh_type', true); ?>   
 </div>

Mit anderen Worten, wenn die button wird von angeklickt first.phpdann ist die second.php wird innerhalb der geladen new_content div. Sobald es geladen ist, möchte ich es damit gleich machen title, contentund die custom meta als die first.php sind angezeigt.

Hier liegt jedoch das Problem.

Weil die meta in dem second.php nicht ursprünglich Teil der Schleife sind (d. h. außerhalb der Schleife), obwohl sie innerhalb der Schleife geladen werden, sobald auf die Schaltfläche geklickt wird, werden keine der angezeigt post meta.

Ich bin mir nicht sicher, was der beste Ansatz ist, um “extend“Die Schleife, hier ist mein Ansatz.

SICH NÄHERN:

  1. Jeder Beitrag wird sein eigenes Unikat haben post_idund Schaltflächen haben auch die post_id mit ihnen.
  2. Wenn auf die Schaltfläche geklickt wird, speichern Sie die post_id (Ich vermute mit jQuery) zusammen mit anderen Metadaten (Titel usw.).
  3. Einmal die second.php wird dann geladen load oder paste diese gespeicherten Metadaten an geeigneter Stelle.

Dieser Ansatz könnte funktionieren, aber ich bin mir nicht sicher, wie ich sie erreichen soll.

Jede Hilfe wird sehr geschätzt.

Vielen Dank!

EDIT: Klarstellung

Die obige Frage ist eine vereinfachte Version dessen, was ich habe, um Verwirrung zu vermeiden.

Also, hier ist, was ich versuche zu erreichen.

  1. Auf einer Seite werden 10 Beiträge angezeigt.
  2. Jeder Beitrag hat eine Schaltfläche zum Aufrufen von “contact_form.php” über Ajax.
  3. Nach einem Klick auf die Schaltfläche wird das Kontaktformular angezeigt.
  4. Das Kontaktformular hat typische Eingabefelder wie Name, E-Mail etc.
  5. Sind diese ausgefüllt, wird abgeschickt.

So weit, ist es gut.

Wenn ich die E-Mail erhalte, tritt das Problem auf.

Ich habe keine Ahnung, von welcher Post das Kontaktformular gesendet wurde.

Mein Ansatz (oder der Versuch, es zum Laufen zu bringen) besteht also darin, das Post-Meta, von dem auf die Schaltfläche geklickt wurde, irgendwie zu speichern und diese Daten dann in das Kontaktformular “einzufügen”, damit ich weiß, welchen Inhalt es hat, wenn ich die E-Mail erhalte ist von.

  • Aus Ihrer Frage geht nichts hervor, aber warum verwenden Sie $post->ID in Ihrer WP_Query-Schleife. Sie müssen verwenden get_the_ID(). Und versuchen Sie bitte, Ihre Frage klar zu erklären. Nichts klar bekommen.

    – Kausha Mehta

    14. September 2015 um 7:11 Uhr


  • Sorry für die Verwirrung. Ich habe unten den Abschnitt “Bearbeiten: Klarstellung” hinzugefügt. =)

    – Steve Kim

    14. September 2015 um 7:19 Uhr

  • Sie müssen also die aktuelle Post-ID beim Klicken auf die Schaltfläche übergeben, damit Sie diese Post-ID im Kontaktformular erhalten. Und in Ihrem Kontaktformular übergeben Sie diese ID (oder erhalten Sie den Beitragsnamen, die ID usw. von post_id), um den Inhalt per E-Mail zu versenden.

    – Kausha Mehta

    14. September 2015 um 7:27 Uhr

  • Du hast also endlich die Lösung?

    – Kausha Mehta

    14. September 2015 um 7:31 Uhr

  • Lassen Sie uns diese Diskussion im Chat fortsetzen.

    – Kausha Mehta

    14. September 2015 um 7:46 Uhr

Benutzer-Avatar
Kausha Mehta

Endlich die Lösung finden. Um die Lösung zu sehen, können Sie hier nachsehen https://chat.stackoverflow.com/rooms/89558/discussion-between-kausha-mehta-and-steve-kim

  • mhm! =) Danke. Ich habe es zum Laufen gebracht und heute etwas mehr gelernt!

    – Steve Kim

    14. September 2015 um 9:46 Uhr

1205500cookie-checkPost-Meta speichern und wiederverwenden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy