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.php
dann ist die second.php
wird innerhalb der geladen new_content
div. Sobald es geladen ist, möchte ich es damit gleich machen title
, content
und 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:
- Jeder Beitrag wird sein eigenes Unikat haben
post_id
und Schaltflächen haben auch diepost_id
mit ihnen. - Wenn auf die Schaltfläche geklickt wird, speichern Sie die
post_id
(Ich vermute mit jQuery) zusammen mit anderen Metadaten (Titel usw.). - Einmal die
second.php
wird dann geladenload
oderpaste
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.
- Auf einer Seite werden 10 Beiträge angezeigt.
- Jeder Beitrag hat eine Schaltfläche zum Aufrufen von “contact_form.php” über Ajax.
- Nach einem Klick auf die Schaltfläche wird das Kontaktformular angezeigt.
- Das Kontaktformular hat typische Eingabefelder wie Name, E-Mail etc.
- 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 verwendenget_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