页面导航在具有特定post_type的帖子中定义不在Wordpress中工作

时间:2010-09-17 01:44:35

标签: wordpress navigation pagination custom-post-type

http://lakers.sonikastudios.com/gallery/sample-gallery-post-1/

该帖子有几页使用Wordpress的 快速标签。这篇文章也是一个自定义的post_type ..使用主题模板中的functions.php中的以下代码。

add_action( 'init', 'create_post_type' );
    function create_post_type() {
        register_post_type( 'gallery',
            array(
                'labels' => array(
                'name' => __( 'Galleries' ),
                'singular_name' => __( 'Gallery' )
            ),
            'public' => true,
            'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'comments')
            )
        );

使用此代码,我设法在管理部分中显示自定义帖子类型。我在那里添加了一篇新文章,页面是脚蹼..

所以使用wp_link_pages()函数,我得到了页面翻转功能。但它仅适用于类别下的常规帖子,但不适用于定义为“图库”post_type的帖子。例如,此页面http://lakers.sonikastudios.com/editorials/catching-the-buss-to-the-hall-of-fame/3/与帖子中的分页一样正常。

我没有使用任何影响后期显示方法或导航的插件,而且我没有弄乱.htaccess文件 - 无论Wordpress写的是什么,我都在那里。

任何帮助都会很棒..该网站已经准备好了,我们遇到了这个瓶颈,这让我很伤心!

我正在使用最新版本的Wordpress,我开始使用白板主题(为WP3制作的新主题)进行开发。 ]

更新: gallery.php(通过Page模块分配显示post_type“gallery” - 我确认这是加载图库post_type post时加载的文件)

<?php
/*
Template Name: Gallery
*/
?>

<?php get_header();

$exclude = array();

?>
<div class="grid_11" id="mainbar">



    <?php if ( have_posts() ) while ( have_posts() ) : the_post();

    $exclude[]=get_the_ID();
    ?>
            <div id="post-<?php the_ID(); ?>" <?php post_class('grid_11 alpha omega'); ?>>
                <h2><a href="<? the_permalink(); ?>" title="<? the_title();?>"><? the_title();?></a></h2>
                <div class="social_media_balloons">
                <?
                if (function_exists('fbshare_manual')) echo fbshare_manual();
                ?>
                <?
                if (function_exists('tweetmeme')) echo tweetmeme();
                ?>
                </div>
                    <?
                    $author_gravatar = get_gravatar(get_the_author_meta('user_email'));
                    ?>
                    <img src="<? echo $author_gravatar;?>" class="alignleft" />
            <?
            echo posted_by_and_category();

            ?>

                    <div class="grid_11 alpha omega">

                        <?php the_content(); ?>
                        <div id="single_article_selectors">

                        <?php wp_link_pages('before=<div class="single_article_selector">&after=</div>'); ?>
                        <?php wp_link_pages('before=<div class="single_article_selector">&after=</div>&next_or_number=next'); ?>

                        </div>

                        <div class="grid_11 alpha omega" id="social_media_links">
                        <div class="grid_5 alpha">
                            <p><a href="http://www.twitter.com/LakersNation" target="_blank"><img src="/images/twittericon.jpg" alt="Twitter" width="32" height="32" class="alignleft">Follow Lakers Nation </a></p>
                            <p><a href="http://feeds.feedburner.com/LakersNation" target="_blank"><img src="/images/rssicon.jpg" alt="Twitter" width="32" height="32" class="alignleft">Subscribe to Lakers Nation</a></p>
                        </div>
                        <div class="grid_5 omega">
                            <p><a href="http://www.facebook.com/lakersnation" target="_blank"><img src="/images/fbicon.jpg" alt="Twitter" width="32" class="alignleft">Become a Fan on Facebook</a></p>
                            <p><a href="http://itunes.apple.com/us/app/app-of-l-nation/id349346678?mt=8" target="_blank"><img src="/images/iphoneicon.png" alt="Twitter" width="32" height="32" class="alignleft">Download our Free iPhone App</a></p>
                        </div>
                    </div>


                        <div class="shadow_divider"></div>
                    </div><!--#post-content-->

                    <!-- If a user fills out their bio info, it's included here -->
                    <div id="post-author" class="grid_11 alpha omega">
                        <h3>Written by <?php the_author_posts_link() ?></h3>
                        <div id="author-gravatar">
                            <!-- This avatar is the user's gravatar (http://gravatar.com) based on their administrative email address -->
                            <?php echo get_avatar( $curauth->user_email, $default = '<path_to_url>' ); ?>
                        </div><!--#author-gravatar -->
                        <div id="authorDescription">
                            <?php the_author_meta('description') ?> 
                            <div id="author-link">
                                <p>View all posts by: <?php the_author_posts_link() ?></p>

                            </div><!--#author-link-->
                        </div><!--#author-description -->
                    </div><!--#post-author-->

                </div><!-- #post-## -->

                <div class="grid_11 alpha omega next_prev_links">
                    <div class="grid_3 alpha">
                        <p>
                            <?php previous_post_link('%link', '&laquo; Previous post') ?>
                        </p>
                    </div><!--.older-->
                    <div class="grid_3 omega" style="float:right; text-align:right;">
                        <p>
                            <?php next_post_link('%link', 'Next Post &raquo;') ?>
                        </p>
                    </div><!--.older-->
                </div><!--.newer-older-->

                <?php comments_template( '', true ); ?>

    <?php endwhile; ?><!--end loop-->
</div><!--#content-->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

single.php(默认为常规帖子显示模板..)

<?php get_header();

$dirpath = str_replace(get_bloginfo('url'), '',get_bloginfo('template_directory'));
?>
<div class="grid_11" id="mainbar">



    <?php if ( have_posts() ) while ( have_posts() ) : the_post();

    $exclude[]=get_the_ID();
    ?>

            <div id="post-<?php the_ID(); ?>" <?php post_class('grid_11 alpha omega'); ?>>

            <?
            echo posted_by_single();
            ?>
            <div class="grid_11 alpha omega">
                <div id="single_post_title">
                <h1><a href="<? the_permalink(); ?>" title="<? the_title();?>"><? the_title();?></a></h1>

                </div>
                <div class="social_media_balloons">
                <?
                if (function_exists('fbshare_manual')) echo fbshare_manual();
                ?>
                <?
                if (function_exists('tweetmeme')) echo tweetmeme();
                ?>
                </div>

                <div class="grid_11 alpha omega">

                    <?php the_content(); ?>
                    <div id="single_article_selectors">

                    <?php wp_link_pages('before=<div class="single_article_selector">&after=</div>'); ?>
                    <?php wp_link_pages('before=<div class="single_article_selector">&after=</div>&next_or_number=next'); ?>

                    </div>

                    <div class="grid_11 alpha omega" id="social_media_links">
                        <div class="grid_5 alpha">
                            <p><a href="http://www.twitter.com/LakersNation" target="_blank"><img src="/images/twittericon.jpg" alt="Twitter" width="32" height="32" class="alignleft">Follow Lakers Nation </a></p>
                            <p><a href="http://feeds.feedburner.com/LakersNation" target="_blank"><img src="/images/rssicon.jpg" alt="Twitter" width="32" height="32" class="alignleft">Subscribe to Lakers Nation</a></p>
                        </div>
                        <div class="grid_5 omega">
                            <p><a href="http://www.facebook.com/lakersnation" target="_blank"><img src="/images/fbicon.jpg" alt="Twitter" width="32" class="alignleft">Become a Fan on Facebook</a></p>
                            <p><a href="http://itunes.apple.com/us/app/app-of-l-nation/id349346678?mt=8" target="_blank"><img src="/images/iphoneicon.png" alt="Twitter" width="32" height="32" class="alignleft">Download our Free iPhone App</a></p>
                        </div>
                    </div>

                    <div class="shadow_divider"></div>
                </div><!--#post-content-->


            </div><!-- #post-## -->



                <div class="grid_11 alpha omega next_prev_links">
                    <div class="grid_3 alpha">
                        <p>
                            <?php previous_post_link('%link', '&laquo; Previous post') ?>
                        </p>
                    </div><!--.older-->
                    <div class="grid_3 omega" style="float:right; text-align:right;">
                        <p>
                            <?php next_post_link('%link', 'Next Post &raquo;') ?>
                        </p>
                    </div><!--.older-->
                </div><!--.newer-older-->
            <div class="grid_11 alpha omega" id="comments_container">
            <?php comments_template( '', true ); ?>
            </div>
        </div>
    <?php endwhile; ?><!--end loop-->
</div><!--#mainbar-->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

1 个答案:

答案 0 :(得分:2)

您拥有的问题是自定义帖子类型的分页。有一个good thread on WordPress.org,其中包含一些示例和解决方案,可用于实现它。

StackOverflow

已经回答了类似的问题

修改

我无法使用您提供的代码重现错误。

请参阅:Custom Post Type Pagination Test

要创建测试,我采取了以下步骤:

  1. 从主题主页上载并安装了白板主题

  2. 添加了提供给functions.php的示例代码,以创建帖子类型

  3. 复制“Gallery Template”提供的代码并将其重命名为single-gallery.php

  4. (模板层次结构在显示单个帖子类型页面时查找单个PostType.php然后查找single.php)

    1. 点击图库添加新

    2. 创建新图库
    3. 使用添加媒体插入4张图片

    4. 在每张图片之间插入<!--nextpage-->

    5. 保存的帖子和更新的永久链接

    6. alt text

      测试环境

      • WordPress版本:3.0.1
      • PHP版本:5.2.13
      • 主题:白板
      • 固定链接:/%year%/%monthnum%/%postname%/