wake-up-neo.com

Anzeigen des Seiteninhalts im Kategoriearchiv (archive.php)

Ich bin neu in der Vorlagenbearbeitung in WordPress und versuche, eine Seitenbeschreibung zu erhalten, die auf meiner Website angezeigt wird, aber nicht angezeigt wird. Die URL, unter der ich die Beschreibung anzeigen möchte, ist hier:

http://fourwallsla.com/category/the-neighborhood/east-side/

und ich habe den Screenshot der Seitenbeschreibung in WordPress angehängt. Offenbar wird die Archivvorlage verwendet (warum wird die Seitenvorlage nicht verwendet?).

Hier ist der Code für die Archivvorlage:

<?php get_header(); ?>
<div class="main">
    <!--<?php iinclude_page(17); ?>-->
    <?php
        $category = get_the_category(); 
        $catName = $category[0]->cat_name;
        $catName = strtolower($catName);

    ?>

    <?php if (have_posts()) : $first = true; ?>
        <?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
        <?php /* If this is a category archive */ if (is_category()) { ?>
          <h1><?php single_cat_title(); ?></h1>
        <?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
          <h1><?php single_tag_title(); ?></h1>
        <?php /* If this is a daily archive */ } elseif (is_day()) { ?>
          <h1><?php echo get_the_time('F jS, Y'); ?></h1>
        <?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
          <h1><?php echo get_the_time('F, Y'); ?></h1>
        <?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
          <h1><?php echo get_the_time('Y'); ?></h1>
        <?php /* If this is an author archive */ } elseif (is_author()) { ?>
          <h1><?php _e( 'Author Archive', 'gray_white_black' ); ?></h1>
        <?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
          <h1><?php _e( 'Blog Archives', 'gray_white_black' ); ?></h1>
        <?php } ?>

        <div>
        <?php
        switch ($catName)
        {
            case "east side":
                iinclude_page(17);
                break;
            case "downtown":
                iinclude_page(20);
                break;
            case "mid-city":
                iinclude_page(15);
                break;
            case "west side":
                iinclude_page(23);
                break;
            case "coastal":
                iinclude_page(27);
                break;
            case "valley":
                iinclude_page(25);
                break;
            default:
                iinclude_page(6);
        }
        ?>
    </div>

        <ul class="post-list">
        <?php while (have_posts()) : the_post();
            if($first) $class = "first-in-row";
            else $class="";
            $first = !$first;
            ?>
            <!-- Start: Post -->
            <li <?php post_class($class); ?>>
                <?php the_post_thumbnail(); ?>
                <p class="categories"><?php the_category(", "); ?></p>
                <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a> <?php edit_post_link(__('Edit', 'gray_white_black'), '', ''); ?></h2>

                <?php the_excerpt(); ?>
                <p class="more"><a href="<?php the_permalink() ?>"><?php _e( '&raquo;&raquo; ', 'gray_white_black' );?></a></p>
                <?php if(has_tag()): ?><p class="tags"><span><?php the_tags(""); ?></span></p><?php endif; ?>
            </li>
            <!-- End: Post -->
        <?php endwhile; ?>
        </ul>

        <p class="pagination">
            <span class="prev"><?php next_posts_link(__('&laquo; Previous Posts', 'gray_white_black')) ?></span>
            <span class="next"><?php previous_posts_link(__('Next posts &raquo;', 'gray_white_black')) ?></span>
        </p>

    <?php else : ?>
        <h2><?php _e( 'Not found', 'gray_white_black' ); ?></h2>
        <p><?php _e( 'Sorry, but you are looking for something that isn\'t here.', 'gray_white_black' ); ?></p>
        <?php get_search_form(); ?>
    <?php endif; ?>
</div>
<?php get_sidebar(); ?>

<?php get_footer(); ?>

In dem obigen Code bezieht sich the_post () entsprechend auf den Inhalt der Home-Auflistung innerhalb der auf der Seite angezeigten Kategorie. Aber wie bekomme ich the_post () für die Seite selbst, die im Screenshot gezeigt wird? Vielen Dank.

enter image description here

1
mheavers

Wenn Sie die Seiten-ID kennen, besteht die einfachste Antwort darin, den Inhalt für die Seite abzurufen.

// This retrieves the content from the post or page where ID = $page_id.
// You can either set this above here, or call get_the_content(12). Your choice.
$parent_page_content = get_the_content($page_id)

// Clean it up and make it a bit more legible:
$parent_page_content = str_replace(']]>', ']]&gt;', $parent_page_content);
$parent_page_content = apply_filters('the_content', $parent_page_content);

// Now echo out the content in place! <p> tags won't be necessary here, btw.
echo $parent_page_content;

Diese Methode beeinträchtigt die Schleife überhaupt nicht, sodass Sie danach wp_reset_query() nicht mehr verwenden müssen. Da Sie den the_content-Filter auf Ihren Text anwenden, werden automatisch die Absatz- und Zeilenumbruch-Tags für Sie hinzugefügt.

Hoffe das hilft.

1
Alex Lane

Aber wie bekomme ich the_post () für die Seite selbst ...?

Kurze Antwort:Sie nicht.

Die archive.php-Datei ist Teil der WordPress-Vorlagenhierarchie und ist einfach eine Vorlage -Datei. Es hat keinen eigenen Beitragsinhalt. Es durchläuft einfach und gibt den Inhalt der Beiträge aus, die mit der aktuellen Abfrage übereinstimmen.

Wenn Sie eine bestimmte Beschreibung ausgeben möchten, müssen Sie die archive.php-Datei direkt bearbeiten, um anzugeben, was Sie ausgeben möchten.

Bearbeiten

Ich möchte den Seiteninhalt auf einer Kategorieschablone ausgeben, wobei der Kategoriename dem Seitennamen entspricht.

Sie können dies tun, aber es ist sicherlich nichts, was mit WordPress inhärent ist. Statische Seiten und Blog-Posts sind zwei völlig unterschiedliche Arten von Inhalten (d. H. Zwei völlig unterschiedliche Post-Typen), und es besteht keine Korrelation zwischen den beiden. WordPress verknüpft einfach nicht Blog-Posts , die einen bestimmten Taxonomiebegriff für eine Kategorie haben, mit einer statischen Seite, die den gleichen Slug wie dieser Taxonomiebegriff hat.

Das heißt, Sie können die beiden zuordnen. Der Prozess ist allerdings etwas fragil.

<?php
if ( is_category() ) {
    // Get current category slug
    $cat = get_query_var( 'cat' );
    $cat_object = get_category( $cat );
    $category_slug = $cat_object->slug;

    // Get the ID of the static page with the same slub
    $category_static_page_id = get_page_by_path( $category_slug );

    // If such a page exists, get it
    if ( isset( $category_static_page_id ) ) {
        // Get the static page object
        $category_static_page = get_page( $category_static_page_id );

        // Output page content
        // Apply the usual the_content filters,
        // for usual "Nice" formatting
        echo apply_filters( 'the_content', $category_static_page->post_content );
    }
}
?>
0
Chip Bennett