创建用于显示带有分页的不同自定义帖子类型的文件

时间:2014-07-01 作者:renathy

我有以下职位类型:

Post-wordpress内置文档-自定义Post类型视频-自定义Post类型

我对wordpress很陌生,不了解模板结构。我正在从头开始创建模板。我已经创建了静态首页,其中列出了最近的“帖子”、最近的“文档”和最近的“视频”。所以我不想用首页来显示所有帖子。我正在使用%PostType%permalink结构,并且我还能够显示每个自定义帖子类型中的单个项目。

我不能做的是:

我需要像mypage这样的链接。com/posts(或非常类似)要显示带有分页的帖子列表(每页10篇帖子)

  • 我需要像mypage这样的链接。com/videos(或非常类似的)要显示带分页的视频列表(每页10篇帖子)
  • 我需要像mypage这样的链接。com/documents(或非常类似)显示分页文档列表(每页10篇文章)
  • 我了解如何检索10篇文章,我可能能够创建分页,但我不了解模板结构、听力和路由。

    Questions如何命名我应该添加php代码的文件(基于wordpress传统命名)?

    我应该创建一些虚拟页面吗?

    如何使路由工作并从我新创建的php文件中获取代码?

    另外,我不确定调用此存档是否正确,或者是否考虑到以后我还需要按日期结合列表中的所有帖子类型过滤帖子。

    1 个回复
    SO网友:Shazzad

    您不必为自定义帖子类型创建任何虚拟页面,因为这些归档页面只是一个自动过程,并使用帖子类型对象名称命名。

    要确保自定义注册帖子类型使用/支持存档页,请设置参数\'has_archive\' => \'documents\' 用于文档(&A);\'has_archive\' => \'videos\' 用于视频。

    register_post_type( \'video\', array(
        \'labels\'      => \'....\',
        \'has_archive\' => \'videos\'
    ) );
    register_post_type( \'document\', array(
        \'labels\'      => \'....\',
        \'has_archive\' => \'documents\'
    ) );
    
    现在,您可以在主题文件夹中创建两个文件来显示这两个存档文件,也可以使用默认文件archive.php.

    对于documents 存档,文件名为archive-document.php对于videos 存档,文件名为archive-video.php

    默认帖子类型的存档页面模板文件posthome.php. 如果要在以下位置显示帖子:site.com/posts, 只需使用slug“posts”创建一个虚拟页面,并将“Front page displays”(wp admin->settings->reading)选项设置为“静态页面”,并将“posts page:”设置为新创建的posts

    然而,通常的做法是不同的。大多数人所做的就是index.php 可采用的文件。因此,无论帖子类型如何,它都会简单地显示帖子。一个简单的索引。php文件如下所示-

    <?php get_header(); // this gets the header.php file ?>
    <?php if( have_posts() ) : // this checks if current query have posts ?>
        <?php while( have_posts() ): // this trigger looping through each of the post ?>
            <?php the_post(); ?>
    
            <?php the_title(); ?>
            <?php the_content(); ?>
    
        <?php endwhile; ?>
    <?php endif; ?>
    <?php get_footer(); // this gets the footer.php file ?>
    
    如果您的主题目录没有archive.phparchive-{$post_type}.php 文件,然后对于任何类型的post类型存档页,index.php 将调用文件。the_title() 函数显示标题,the_content() 显示该帖子的内容。

    您真的不必像WordPress在core中那样关心归档页面的路由。包括分页-site.com/videos/page/2/.

    命名或任何有关模板的重要参考:Template_Hierarchy

    结束

    相关推荐

    Max Posts and Memory Limit

    所以我有一个自定义的帖子类型,它使用ACF元盒,包含750多篇帖子和grwoing。我得到了臭名昭著的白色死亡屏幕,因为PHP似乎已经耗尽了查询所有这些帖子和数据的内存限制。我设置了PHP。INI文件的最大执行时间和内存限制为-1 并将配置中的WP内存限制增加到define(\'WP_MEMORY_LIMIT\', \'4096M\');然而,当我试图查看自定义帖子类型时,在管理中仍然会收到一个白色的死亡屏幕。有没有关于如何修复/增加内存的想法?谢谢