0

我正在建立一个个人网站来托管我的大学工作、个人项目和照片等。

菜单是由pages和组成的层次结构links。以我的大学网页为例。我想要实现的是显示与模块代码相关的帖子,即page's slug.

我使用了以下链接http://codex.wordpress.org/Page_Templates#A_Page_of_Posts并设法让它工作,但我已将模块代码硬编码到模板中,这意味着对于每个模块我都必须有一个单独的模板唯一不同的是一个文件到另一个文件是 5 个字符,这对于代码重用来说不是很好。

我要问的是,有没有办法从我正在查看的页面中获取并将其用于参数。slugWP_Query

如果您访问http://michaelnorris.co.uk/并查看菜单结构。导航到大学 -> 三年级 -> 个人项目,您会注意到网址是http://michaelnorris.co.uk/uni/three/ci301 其中. 我想在每个模块页面上都有这个系统,以便我可以标记并将它们显示在相关模块中。ci301Individual Projectposts

4

1 回答 1

0

好的,我实际上自己找到了答案,但对于其他想要做同样的事情的人来说。下面是一个解决方案。

在 Wordpress.org Codex http://codex.wordpress.org/Page_Templates#A_Page_of_Posts上找到的解决方案

命名文件pageofposts.php并在 Wordpress 仪表板中编辑页面,并将模板(在下拉列表中)设置为“帖子页面”。答对了!

<?php
/*
Template Name: Page Of Posts
*/

/* This example is for a child theme of Twenty Thirteen: 
*  You'll need to adapt it the HTML structure of your own theme.
*/

get_header(); ?>

    <div id="primary" class="content-area">
        <div id="content" class="site-content" role="main">
        <?php 
        /* The loop: the_post retrieves the content
         * of the new Page you created to list the posts,
         * e.g., an intro describing the posts shown listed on this Page..
         */
        global $post;
        $slug = get_post( $post )->post_name;

        if ( have_posts() ) :
            while ( have_posts() ) : the_post();

              // Display content of page
              get_template_part( 'content', get_post_format() ); 
              wp_reset_postdata();

            endwhile;
        endif;

        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

        $args = array(
            // Change these category SLUGS to suit your use. category_name is comma separated.
            'tag' => $slug, 
            'paged' => $paged
        );

        $list_of_posts = new WP_Query( $args );
        ?>
        <?php if ( $list_of_posts->have_posts() ) : ?>
            <?php /* The loop */ ?>
            <?php while ( $list_of_posts->have_posts() ) : $list_of_posts->the_post(); ?>
                <?php // Display content of posts ?>
                <?php get_template_part( 'content', get_post_format() ); ?>
            <?php endwhile; ?>

            <?php twentythirteen_paging_nav(); ?>

        <?php else : ?>
            <?php get_template_part( 'content', 'none' ); ?>
        <?php endif; ?>

        </div><!-- #content -->
    </div><!-- #primary -->

<?php get_footer(); ?>
于 2013-10-03T18:43:21.407 回答