我正在为视频制作公司构建一个Wordpress网站。他们为成人和孩子制作视频,因此我在后端分割帖子以保持结构。所以设置如下:
我想要实现的是一个逻辑URL结构,例如 example.com/productions/for-big/name-of-adult-production 。现在我有像 example.com/productions_big/name-of-adult-production 这样的网址,因为productions_big是CPT的名称。
我熟悉注册自定义帖子类型时应该传递的重写参数。我已经在stackoverflow中建议的所有方式完成了这个,但它只是不起作用。以下是我用来注册CPT的代码的摘录:
add_action('init', 'all_custom_post_types');
function all_custom_post_types() {
$types = array(
array('the_type' => 'productions_big',
...
array('the_type' => 'productions_small',
...
);
foreach ($types as $type) {
$the_type = $type['the_type'];
...
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'capabilities' => array(
...),
'rewrite' => array('has_archive' => false, 'slug' => 'bla', 'with_front' => false),
'has_archive' => false,
'map_meta_cap' => true,
'hierarchical' => false,
'menu_position' => 5,
'supports' => array('title','editor','thumbnail', 'taxonomies'),
'taxonomies' => array( 'category' )
);
register_post_type($the_type, $args);
}
}
如你所见,我试过'rewrite'=> array('slug'=>'bla')因为当我写'rewrite'=>时我想知道它是否因为页面名称冲突而无效array('slug'=>'productions / for-big')
但无论我给slug什么价值,它总是将我重定向到 index.php 。
我认为它不起作用的原因是我分配帖子模板的方式(请记住:作为后端的post属性,而不是专用的 single-xxx.php 文件)但我无法在任何地方找到解决方案。所有寻求解决方案的求职者都发布了模板,这些模板采用了老式的 single-name_of_cpt.php 方式(这对我来说是不可能的)。
旁注:最终目标是使slu“”动态“。这意味着如果在后端更改页面名称,它会发生变化。我可能会尝试this approach但事先我必须摆脱这里描述的基本问题。
非常感谢任何想法。谢谢你阅读这篇文章。
答案 0 :(得分:0)
哦,男孩,似乎你必须发布你的问题才能自己找到答案。在尝试设置另一个CPT后,一切都像一个魅力。
这让我调查了之前CPT的注册情况。如您所见,我尝试在一个功能
中注册我的CPTfunction all_custom_post_types() {
$types = array(
array('the_type' => 'productions_big', ...
array('the_type' => 'productions_small', ...
);
foreach ($types as $type) {
$args = array(...
'rewrite' => array('slug' => 'bla'),...
);
register_post_type($the_type, $args);
}
}
所以最终我的网页和自定义帖子类型之间没有冲突,但是给同一个slug到两种不同的帖子类型的冲突。