我需要一个帖子类型作为页面的 child (实际上基本上是任何其他帖子类型及其本身),并且它也必须适用于CPT的分类法。
通常的想法是在我的选项中有一个动态的父页面,保存在cpt_parent_page
下。目前,我的弹效果很好;在管理员的CPT分类下,我具有正确的链接。但是,当我查看分类法时,我会得到404。我敢肯定,我只是忘记了一个非常小的事情,但是我需要记住所说的事情。
$cpt = 'book';
$cpt_singular = 'Book';
$cpt_plurial = 'Books';
/*
* Register CPT
*/
$labels = array(
'add_new_item' => 'Add New '.$cpt_singular,
'all_items' => 'All '.$cpt_plurial,
'edit_item' => 'Edit '.$cpt_singular,
'name' => $cpt_singular,
'name_admin_bar' => $cpt_singular,
'new_item' => 'New '.$cpt_singular,
'not_found' => 'No '.$cpt_singular.' found',
'not_found_in_trash' => 'No '.$cpt_plurial.' found in Trash',
'parent_item_colon' => 'Parent '.$cpt_singular,
'search_items' => 'Search '.$cpt_plurial,
'view_item' => 'View '.$cpt_singular,
'view_items' => 'View '.$cpt_plurial,
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_in_menu' => true,
'show_in_admin_bar' => true,
'can_export' => true,
'has_archive' => false,
'hierarchical' => true,
'menu_position' => null,
'supports' => array( 'editor', 'thumbnail', 'title' ),
'rewrite' => array(
'slug' => get_permalink( get_option('cpt_parent_page') ),
'with_front' => false
),
);
register_post_type($cpt, $args);
/*
* Register taxonomy
*/
register_taxonomy(
$cpt_name, // Taxonomy name
$cpt, // Associate taxonomy to this post type
array(
'hierarchical' => true,
'label' => $tax_name,
'query_var' => true,
'rewrite' => array(
'slug' => get_permalink( get_option('cpt_parent_page') ),
'with_front' => false
),
'show_in_quick_edit' => true,
'show_admin_column' => true,
)
);
答案 0 :(得分:2)
您最有可能收到错误void delByIndex(vector<int>::iterator &i, vector<int>& a)
{
a.erase(i);
}
int main()
{
vector<int> a {1,5,6,2,7,8,3};
vector<int> b {1,2,3,1};
for(auto i=a.begin();i!=a.end();)
{
bool flag = false;
for(auto j=b.begin();j!=b.end();j++)
{
if(*i==*j)
{
flag = true;
}
}
if(flag)
{
delByIndex(i, a);
}
else
i++;
}
for(auto i:a)
cout << i << " ";
return 0;
}
,这是因为更改选项后尚未刷新重写规则。但是,即使不是这种情况,请确保在更改选项后始终刷新规则 –只需访问永久链接设置页面即可。
除此之外,您不应该使用404
,或者您应该使用帖子 slug 而不是其永久链接URL。因此,请进行以下更改:
get_permalink()
那应该起作用;但是,// Change this:
get_permalink( get_option('cpt_parent_page') )
// to this FOR THE POST TYPE:
get_post_field( 'post_name', get_option('cpt_parent_page') ) . '/p'
// or this FOR THE TAXONOMY:
get_post_field( 'post_name', get_option('cpt_parent_page') ) . '/t'
和/p
是必需的,以便WordPress知道请求是针对帖子还是术语(按分类法)—如果没有/t
或/p
,重写规则将发生冲突并可能失败(例如,术语请求被混淆为发布或子页面请求)。