我对自定义帖子类型的档案有问题。
我有一个WordPress页面/address/
/address/post#/当我激活此功能时,WordPress页面/address/
替换为自定义帖子存档。
我怎样才能阻止这一切的发生?我希望WordPress页面出现在/address/
而不是存档。
我对自定义帖子类型的档案有问题。
我有一个WordPress页面/address/
/address/post#/当我激活此功能时,WordPress页面/address/
替换为自定义帖子存档。
我怎样才能阻止这一切的发生?我希望WordPress页面出现在/address/
而不是存档。
注册帖子类型时,请设置has_archive
参数为false。如果您更改了它,请不要忘记刷新重写规则以查看更改。
现在,如果按照您的要求,希望显示页面而不是归档文件,那么这就可以了。如果您希望显示页面内容以及自定义帖子列表,那么情况如何?
有两种方法可以实现这一点。
has_archive
当我注册我的帖子类型并创建一个普通页面以用于存档模板时。页面的slug与归档slug匹配。默认情况下,WP的重写规则是按顺序排列的,以便归档优于页面。在我的archive-{post_type}.php
模板I放置此:
$queried_object = get_queried_object();
$page_data = get_page_by_path( $queried_object->rewrite[\'slug\'] );
/* no need to check our context, as we know that this
code will only run for our CPT archives
*/
if ( !is_single() ) {
echo apply_filters(\'the_content\', $page_data->post_content);
}
// process the content in the same way that the_content would within a loop
// Now go into your usual archive loop...
如果您愿意,您可以使用页面ID,甚至可以为您的帖子类型设置一个选项,该选项相当于帖子的内置页面。这样,您就不必为自己重新构建更困难的归档查询。
谢谢大家的帮助。
安迪让我走上了正确的道路。我只想补充一下:
flush\\u rewrite\\u rules();
再次感谢!
我想将CPT中的一些自定义字段传递给帖子。我有一些代码,但我不知道如何“集成”它。我正在WP模板中做一些事情(这不是我的,这是主要问题)。Code 我有这个single-job.php, 这是-从单个复制。php—CPT的post模板。<?php /** * Job Post */ if( defined(\'FW\') ) : $elements = jevelin_option( \'post_elements\' ); if(