带有名称和链接的循环帖子类型

时间:2014-06-21 作者:davidcondrey

我正在尝试创建一个菜单,它可以循环浏览已注册的自定义帖子类型和指向其存档页面的链接。我已经能够获得帖子类型名称列表,但它没有生成链接。它只输出一个围绕帖子类型名称的en空锚定标记。

$args = array( \'public\' => true,\'_builtin\' => false );
$output = \'names\';
$operator = \'and\';
$post_types = get_post_types( $args, $output, $operator );
foreach ( $post_types  as $post_type ) {
    $link = get_post_type_archive_link($post_type);
    echo \'<li><a href="\' . $link . \'">\' . $post_type . \'</a></li>\';
}
这是我的输出。

<li><a href="">posttypeA</a></li>
<li><a href="">posttypeB</a></li>
<li><a href="">posttypeC</a></li>
我有posttypeX存档。每个帖子类型的php文件。

enter image description here

我的所有自定义帖子类型的注册方式与此类似:

function post_type_snippets() {
    register_post_type(\'snippets\', array(
        \'label\'=>\'Snippets\',
        \'menu_icon\' => \'\',
        \'labels\'=>array(
            \'name\'=>_x(\'Snippets\', \'post type general name\'),
            \'singular_name\'=>_x(\'Snippet\', \'post type singular name\'),
            \'add_new\'=>_x(\'Add New\', \'snippets\'),
            \'add_new_item\'=>__(\'Add New Snippet\'),
            \'edit_item\'=>__(\'Edit Snippet\'),
            \'new_item\'=>__(\'New Snippet\'),
            \'view_item\'=>__(\'View Snippet\'),
            \'search_items\'=>__(\'Search Snippets\'),
            \'not_found\'=>__(\'No snippets found\'),
            \'not_found_in_trash\'=>__(\'No snippets found in Trash\'),
            \'parent_item_colon\'=>\'\'),
            \'public\'=>true,
            \'publicly_queryable\'=>true,
            \'show_ui\'=>true,
            \'query_var\'=>true,
            \'rewrite\'=>false,
            \'capability_type\'=>\'post\',
            \'supports\'=>array(\'title\',\'thumbnail\',\'comments\',\'revisions\',\'post-formats\'),
            \'taxonomies\'=>array(\'category\', \'post_tag\'),
            \'slug\'=>\'snippets\',
            \'hierarchical\'=>false,
            \'menu_position\'=>4
        ));
    }
    add_action(\'init\', \'post_type_snippets\');

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

正如汤姆所提到的,$link 为false,因为您的帖子类型没有存档。您需要添加has_archive 参数,并设置rewritetrue 因此,将生成存档的重写规则。

结束

相关推荐

wp add inline style in loop

由于wp\\u add\\u inline\\u style wordpress函数,我想添加内联样式。内联样式将添加到循环中。在我的例子中,我在循环中输出了一个同位素网格,这个网格可以为每个网格进行不同的css定制。实际上,我有一个php脚本:function grid_register_styles(){ $themeversion = wp_get_theme()->display(\'Version\'); wp_register_style( \'grid