it-swarm.com.de

Wie zeige ich Seiteninhalte in einer Seitenvorlage an?

Auf meiner WordPress-Site habe ich eine benutzerdefinierte Seitenvorlage erstellt, die eine benutzerdefinierte Abfrage enthielt [using WP_Query()]. Mit dieser Abfrage kann ich die Beiträge einer bestimmten Kategorie perfekt abrufen. Ich möchte aber den Seiteninhalt zusammen mit den abgefragten Beiträgen anzeigen.

Die Sache wird sein wie:
---------------------------

Seitentitel

seiteninhalt

Abgefragte Post-Überschrift

abgefragten Beitragsinhalt
---------------------------

  • Was kann ich machen?
11
Mayeenul Islam

Ich benutze zwei Loops. In der ersten Schleife wird der Seiteninhalt und in der zweiten Schleife der abgefragte Beitragsinhalt angezeigt. Wo nötig, habe ich die Codes kommentiert. Ich habe in den Schleifen betont, wie Deckster0 sagte in der WordPress-Unterstützung dass the_content() nur innerhalb einer WordPress-Schleife funktioniert. Ich füge diesen Code in eine eigene Vorlage ein:

<?php
/*
* Template Name: My Template
*/
get_header(); ?>

<div id="container">
    <div id="content" class="pageContent">

    <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Page Title -->
    <?php
    // TO SHOW THE PAGE CONTENTS
    while ( have_posts() ) : the_post(); ?> <!--Because the_content() works only inside a WP Loop -->
        <div class="entry-content-page">
            <?php the_content(); ?> <!-- Page Content -->
        </div><!-- .entry-content-page -->

    <?php
    endwhile; //resetting the page loop
    wp_reset_query(); //resetting the page query
    ?>

    <?php
    // TO SHOW THE POST CONTENTS
    ?>                        
        <?php
        $my_query = new WP_Query( 'cat=1' ); // I used a category id 1 as an example
        ?>
        <?php if ( $my_query->have_posts() ) : ?>
        <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
        <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>

            <h1 class="entry-title"><?php the_title(); ?></h1> <!-- Queried Post Title -->
            <div class="entry-content">
                <?php the_excerpt(); ?> <!-- Queried Post Excerpts -->
            </div><!-- .entry-content -->

        <?php endwhile; //resetting the post loop ?>

        </div><!-- #post-<?php the_ID(); ?> -->

        <?php
        wp_reset_postdata(); //resetting the post query
        endif;
        ?>

    </div><!-- #content -->         
</div><!-- #container -->
20
Mayeenul Islam

Zwei Loops sind dafür üblich, aber etwas überdosiert.

Jeder Beitrag oder jede Seite enthält den Supervariablen $post. Haben Sie sich jemals gefragt, warum Ihre get_post_meta() mit einem einfachen $post->ID funktioniert?

Bevor Sie also die WP_Query () starten, die Ihre aufgelisteten Posts abruft, können Sie mit $post->ID, $post->post_content, $post->guid usw. auf die aktuellen Seiten-/Post-Daten zugreifen.

In der Schleife wird diese Variable durch den geloopten Beitrag gefüllt. Um es für später zu speichern, können Sie entweder eine neue Variable erstellen

$temp_post = $post

// new WP_Query() + loop here

oder anrufen

wp_reset_query ()

nach der Auflistung. Die letzte Funktion sollte trotzdem aufgerufen werden, um sicherzustellen, dass die Daten in Ihrer Seitenleiste für die aktuelle Seite/den aktuellen Beitrag geeignet sind.

0