带分页的自定义POST类型档案中的自定义分类

时间:2015-10-14 作者:Jeffrey von Grumbkow

在我看来,有些简单的事情需要做,但我无法让它发挥作用。

我有一个自定义的帖子类型adm_project 具有rewrite => array(\'slug\' => \'projecten\')

add_action( \'init\', \'adm_build_projecten_post_type\', 0 );
function adm_build_projecten_post_type() {

    register_taxonomy(
        \'project_werkgebied\',
        \'adm_project\',
        array(
            \'label\' => \'Werkgebieden\',
            \'singular_label\' => \'Werkgebied\',
            \'hierarchical\' => true,
            \'query_var\' => true,
        )
    );

    $labels = array(
        \'name\'               => \'Projecten\',
        \'singular_name\'      => \'Project\',
        \'menu_name\'          => \'Projecten\',
        \'all_items\'          => \'Alle Projecten\',
        \'add_new\'            => \'Project toevoegen\',
        \'add_new_item\'       => \'Nieuwe Project\',
        \'edit\'               => \'Bewerken\',
        \'edit_item\'          => \'Project bewerken\',
        \'new_item\'           => \'Nieuwe Project\',
        \'view\'               => \'Bekijken\',
        \'view_item\'          => \'Bekijk Projecten\',
        \'search_items\'       => \'Zoek Project\',
        \'not_found\'          => \'Geen Project(en) gevonden\',
        \'not_found_in_trash\' => \'Geen Project(en) in prullenbak gevonden\',
        \'parent\'             => \'\',
    );

    $args = array(
        \'label\'               => \'Projecten\',
        \'labels\'              => $labels,
        \'supports\'            => array( \'title\', \'editor\', \'thumbnail\', \'excerpt\' ),
        \'hierarchical\'        => false,
        \'public\'              => true,
        \'show_ui\'             => true,
        \'show_in_menu\'        => true,
        \'show_in_nav_menus\'   => true,
        \'show_in_admin_bar\'   => true,
        \'menu_position\'       => 20,
        \'menu_icon\'           => \'dashicons-hammer\',
        \'can_export\'          => true,
        \'has_archive\'         => true,
        \'exclude_from_search\' => false,
        \'publicly_queryable\'  => true,
        \'capability_type\'     => \'page\',
        \'rewrite\'             => array( \'slug\' => \'projecten\' )
    );

    register_post_type( \'adm_project\', $args );

}
在主题中,我有一个文件名archive-adm_project.php 其中显示了所有项目,包括所需的工作分页。

我想要的是当我去

/projecten/%project_werkgebied%
它的功能完全相同,但只显示具有url中的分类法的项目。

2 个回复
最合适的回答,由SO网友:Spongsta 整理而成

我还没有看到一个“干净”的方法来做到这一点——如果别人知道的话,我很乐意向他们学习。

然而,我们过去处理这一问题的方法是使用一个自定义页面模板设置一个slug为“projecten”的页面,该模板的行为和行为类似于归档页面。然后为每个术语添加子页面(确保为每个相关的术语子页面选择自定义分类法-这只取决于您想如何查找术语)。

这将为您提供所需的slug结构。然后,您可以使用创建的页面模板来查找第二个url参数(或查找与帖子相关的分类法),并向WP查询添加一个tax\\u查询,以按分类法术语进行限制。或者换一种方式试试,一旦你有了父/子页面关系和slug结构完成。。。

我相信您可以找到编写所需输出的最佳方法。

SO网友:Gareth Gillman

1) 创建名为taxonomy-taxonomy\\u NAME的模板。php)

2) 将以下WP查询添加到模板

global $post;
$term = get_the_terms($post->id, \'TAXONOMY_NAME\');
$args = array(
 \'post_type\' => \'POSTTYPE_NAME\',
 \'tax_query\' => array(
  array(
   \'taxonomy\' => \'TAXONOMY_NAME\',
   \'field\'    => \'slug\',
   \'terms\'    => $term,
  ),
 ),
);
$query = new WP_Query( $args );
您需要添加其余的查询内容(如添加标题、摘录等),但这应该(未经测试)从为您所在页面定义的术语中引入所有帖子。

相关推荐

Show pagination in WP_Query

我正在编写一个foodblog,并试图在特定页面中显示收藏夹帖子列表,但我对分页有一些问题。我在前面的问题中尝试了不同的解决方案,但都没有解决问题。非常感谢 <?php $my_favs = get_user_meta(get_current_user_id(), \'user_favs\', true); $args = array( \'post_type\' => array(\'recipe\', \'post