WordPress Страница сообщений

Я создаю персональный веб-сайт для размещения моей работы в университете, личных проектов, фотографий и т. Д.

Меню представляет собой иерархическую структуру, состоящую из pages а также links, Возьмите мои университетские страницы например. Чего я хотел бы добиться, так это отображать сообщения, связанные с кодом модуля, который является page'sslug,

Я использовал следующую ссылку http://codex.wordpress.org/Page_Templates и сумел заставить ее работать, но я жестко закодировал код модуля в шаблоне, то есть для каждого модуля у меня должен быть отдельный шаблон и единственное, что будет отличаться от одного файла к следующему, - это 5 символов, что не очень хорошо для повторного использования кода.

Я спрашиваю, есть ли способ получить slug со страницы, которую я смотрю, и использовать это для WP_Query аргументы.

Если вы зайдете на http://michaelnorris.co.uk/ и посмотрите на структуру меню. Перейдите в Университет -> Третий год -> Индивидуальный проект, вы увидите URL http://michaelnorris.co.uk/uni/three/ci301 где ci301 код модуля для Individual Project, Я хочу, чтобы эта система была на каждой странице модуля, чтобы я мог пометить posts и они отображаются в соответствующем модуле.

1 ответ

Решение

Хорошо, я действительно нашел ответ сам, но для тех, кто хочет сделать то же самое. Ниже приведено решение.

Решение можно найти здесь в Кодексе Wordpress.org http://codex.wordpress.org/Page_Templates

Назовите файл 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(); ?>
Другие вопросы по тегам