未找到分配给自定义帖子类型的类别

时间:2011-01-19 作者:Jeff

这是我的问题:

我已经为某些类别指定了自定义帖子类型。当我搜索这些类别时,可以通过搜索或直接输入url。然而,如果我将一个普通的帖子类型分配给一个类别,它就会变得可搜索,并且可以通过url直接输入。我以为我的自定义帖子类型代码中包含了所有内容,但我一定错过了什么。如有任何帮助,将不胜感激:

add_action(\'init\', \'create_trainingplan_post_type\');

function create_trainingplan_post_type() {
register_post_type(\'trainingplan\', array(
    \'labels\' => array(
        \'name\' => \'Training Plans\',
        \'singular_name\' => \'Training Plan\',
        \'add_new\' => \'Add New Training Plan\',
    \'add_new_item\' => \'Add New Training Plan\',
    \'edit\' => \'Edit Training Plans\',
        \'edit_item\' => \'Edit Training Plan\',
        \'new_item\' => \'New Training Plan\',
        \'view_item\' => \'View Training Plans\',
        \'search_items\' => \'Search Training Plans\',
        \'not_found\' => \'No Training Plans found\',
        \'not_found_in_trash\' => \'No Training Plans found in Trash\'
    ),
    \'public\' => true,
\'exclude_from_search\'=> false,
\'rewrite\' => array(\'slug\' => \'my-custom-training-plan\', \'with_front\' => true),
\'supports\' => array(
    \'title\',
    \'excerpt\',
    \'editor\',
    \'custom-fields\',
    \'revisions\',
    \'thumbnail\',
    \'author\',
    \'page-attributes\'

    ),
    \'taxonomies\' => array(\'category\', \'post_tag\') // this is IMPORTANT
));
flush_rewrite_rules();
}
感谢您到目前为止的帮助,我已经添加了到目前为止收到的答案中的评论,以便在我的问题中更清楚地说明这一点:

@实际上,我可以搜索自定义帖子类型并找到它。这是因为无法搜索或找到仅分配给自定义帖子类型的类别。基本上,我试图让用户能够按类别进行搜索,但只分配给自定义帖子类型的类别不会出现。因此,即使我键入了该类别的直接url,也会出现一个错误页面:“很抱歉,我们在该url中找不到您要查找的类别。请尝试从邮件上方或侧面选择一个菜单项,以获取您的位置…”

@בנייתאתרים我将类别分配给自定义职位类型,就像您分配给普通职位一样。在写这篇文章的时候,我勾选了我想包含的类别。在“编辑帖子”面板中,它确实确认类别已分配给cpt。然而,当我转到类别url或搜索该类别内的帖子时,cpt不会显示。

再次感谢

1 个回复
SO网友:Bainternet

默认的搜索功能将只查找帖子和页面,因此您需要将post\\u类型添加到搜索中,可以通过两种方式完成此操作

使用“pre\\u get\\u posts”筛选器在查询之前添加您的帖子类型,如下所示:

function Search_CPT_Filter($query) {
    $post_type = $_GET[\'type\'];
    if (!$post_type) {
        $post_type = array(\'post\',\'post type name\');
    }
    if ($query->is_search) {
        $query->set(\'post_type\', $post_type);
    };
    return $query;
};

add_filter(\'pre_get_posts\',\'Search_CPT_Filter\');
或者,将帖子类型添加到隐藏字段中的搜索表单中,如下所示:

<input type="hidden" name="post_type" value="post type name" /> 
在这两种情况下,只需将“post type name”更改为您的post type的名称即可。

结束

相关推荐

WordPress删除wp_List_Categories中最后一项的分隔符

我正在尝试删除最后一个分隔符(通常是<br/> 标记,但我将其从wp\\u list\\u categories的最后一个链接更改为“/”)。基本上我想要这个:类别1//类别2//类别3//看起来像这样:类别1//类别2//类别3以下是我当前使用的代码:<?php $cat_array = array(); $args = array( \'author\' => get_the_author_meta(\'id\'),&#x