Archives.php 仅显示类型为“post”的内容,但您可以修改它以包含自定义文章类型。将此过滤器添加到您的 functions.php 文件中
function namespace_add_custom_types( $query ) {
if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
$query->set( 'post_type', array(
'post', 'nav_menu_item', 'your-custom-post-type-here'
));
return $query;
}
}
add_filter( 'pre_get_posts', 'namespace_add_custom_types' );
我能否使搜索也包含自定义文章类型的结果?
是的。
将此放入您的 functions.php 中
我还假设您已经将 'publicly_queryable' => true 添加到您的 CPT 的 $args 数组中。
希望对您有所帮助
哦,天哪,我已经连续两天在处理这个问题了!感谢您提供这个简单的解决方案!
谢谢!我无法解决这个问题!
我正在使用 CPT UI 工具进行自定义文章类型。我为它们分配了一个类别,但文章不会显示。
我无法弄清楚如何使这段代码工作。
我的自定义文章类型称为成功案例,slug 为 success-stories。
有人可以帮我吗?
我在使用此代码片段时遇到问题。它给了我一个白屏。我也尝试过 WordPress 论坛。但是无法在档案中显示自定义文章类型
感谢发布此内容!它运行良好。
感谢这段代码片段用于归档自定义文章类型。
过去我使用了一个插件(“Simple custom post type archives”)来归档自定义文章类型,在我的主题中我不得不使用一个文件来显示所有自定义文章类型的档案。
但现在更简单了!
再次感谢
你能否提供更多细节,例如…
它如何知道只在档案页面上执行此操作?等等……。
这是一个简短的代码片段,所以我认为不会太麻烦。提前感谢。
解决了那个问题——让自定义文章类型显示在档案页面上——但是超级菜单变为空白,欢迎页面上的一些图像没有显示,欢迎页面滑块菜单/导航无法工作…
WP3.2.1、Magazinum 主题、Design Chemical 超级菜单、Custom Post Types UI
谢谢,但我认为 functions.php 文件中的此添加不会真正改变以包含自定义文章类型。我同意 Cav 的观点。必须有一个详细的教程。
谢谢..
我做到了 :)
if( is_home() || is_tag() && empty( $query->query_vars[‘suppress_filters’] ) )
如果您不想让菜单消失,请也包含 'nav_menu_item'!
您好,感谢代码片段!
我有一个主题,它在 author.php 模板上显示最近的文章,不幸的是 nav_menu_items 被显示为文章(内容为空)。如果没有 nav_menu_item,导航菜单就会消失,所以我正在寻找一些东西,它可以将自定义文章类型添加到我的档案中,而无需将 nav_menu_items 集成到其他任何地方…
到目前为止我还没有找到任何解决方案,所以任何帮助都将不胜感激!
干杯,
Thomas
是的,包含“nav_menu_item”对我来说是关键。非常感谢,John B。
谢谢 Jon。救星。
Jon,谢谢!我使用了原始的代码片段,意识到我的菜单消失了,并且不明白为什么。关于这一点的信息很少——尽管人们遇到了同样的问题——通过粗略的谷歌搜索。我忘记了我在哪里获取了代码片段,偶然回到 Chris 的页面上,心想,“哇。这正是相同的代码。一定是我从那里获取的,”然后找到了你的评论。
这解决了问题。神圣的筋疲力尽但心存感激的蝙蝠侠。
救世主。不明白为什么我的导航菜单消失了。谢谢。
非常感谢,Jon。节省了我很多时间!
你救了我 Jon,非常感谢。
谢谢,Jon!
感谢您指出这一点,Jon B!Chris,您应该更新您的代码片段以包含 Jon 的建议。
我将更新这篇文章,因为这显然更好。=)
我认为这应该通过添加
到您的条件中来解决
感谢菜单提示,Jon B——这正是我想要的。
我有一个名为“product”的 CPT。此 CPT 具有独特的格式/设计(不像常规的 WordPress 文章),但具有相同的功能(标签和类别)。如何在首页、档案等中分离此自定义文章类型???
谢谢, :)
喜欢它!就像魅力一样。
谢谢大家!
使用 suppress filters 也可以影响附件页面
一个可能的解决方案
function my_get_posts( $query ) {
if(!is_admin() || is_archive()){
if (!is_post_type_archive() && $query->is_main_query() )
$query->set( ‘post_type’, array( ‘post’, ‘page’, ‘post-format’, ‘video’, ‘slideshow’, ‘timeline’ ) );
return $query;
}
}
!is_admin – 没有这个也会影响管理页面中的搜索。
这里有一个演示
http://www.zurita-bach.com/
目前我只有 timeline 作为自定义文章类型
替换 $query->$query->is_main_query()
为 $query->is_archive()
谢谢 Jon B,你是老大!
我发现这会在查询文章类型和类别时产生问题。
您可以在后端通过访问自定义文章类型的类别列表来查看此问题
在自定义类型中单击类别菜单项,然后单击数字以查看该类别中的文章。
wp-admin/edit.php?category_name=some_cat&post_type=some_type
你会看到显示的帖子似乎是除了查询的帖子以外的所有类型。
即使使用 Ana 的解决方案,该解决方案据称排除了管理员。
嗨,alvar,我的最终解决方案
add_filter( ‘pre_get_posts’, ‘my_get_posts’ );
function my_get_posts( $query ) {
if(!is_admin()){
if (!is_post_type_archive() && $query->is_archive())
$query->set( ‘post_type’, array( ‘post’, ‘page’, ‘post-format’, ‘video’, ‘slideshow’, ‘timeline’ ) );
return $query;
}
}
@Ana:非常感谢,这个(&& $query->is_)解决了我在最近帖子小部件中遇到的问题(之前显示所有类型的帖子)。
我测试了这里的每一部分代码,这是唯一一个完美运行的代码。谢谢 Ana!!!
我将把它放在一个代码块中,以便于复制/粘贴
哇。ANA 这真是救了我。这对我有用。
谢谢 Ana!!
拯救了我的一天。谢谢!
我认为 Ana 的代码越来越接近解决方案了。
我这边的问题是我有一些显示自定义帖子类型的部件。例如“随机推荐”、“最新提示”等。
在使用此函数的页面(我的自定义帖子类型的分类存档)上,这些部件会感到困惑,并显示不同帖子类型的内容——因此,随机推荐部件可能会显示随机提示。
有什么想法我可以做些什么,无论是对这个函数还是对我的部件,让他们一起正常工作吗?
感谢您的代码……它对我来说非常有效……这正是我正在寻找的:)
好的,我的问题是这导致了我所有的部件(例如最新的推荐)获取了错误的帖子类型。
这是我用来解决它的代码。
这段代码片段拯救了我……一个问题……您将如何包含其他参数,例如 &orderby=title 和 &order=asc?谢谢!
这对我的效果最好
它保留了导航、我的小部件和主页上的自定义查询。
谢谢 Daan!
你真是个天才!非常感谢!
谢谢 Daan!这也是我的解决方法。
应该提到,我添加了
!is_admin()
到条件语句中,这样它就不会在控制面板以及存档页面上获取我所有的自定义帖子类型。
Daan 的解决方案完美运行。
最后那个帖子非常有效,谢谢!但是……现在这意味着在 wp-admin 中,在每个自定义帖子列表 UI 中,除了我们点击的那个之外,所有其他自定义帖子类型都会显示出来
我这边也遇到了同样的情况。我正在使用 Daan 的代码,如果我能解决这个小问题,它将正是我需要的。
当然我知道这条评论是 4 个月前的,但我确实想出了如何解决这个问题。
在您创建自定义帖子类型的 functions.php 文件中,更改此行
这应该可以解决问题!:) 至少在我的情况下解决了,所以我希望它能帮助其他人!
Dann 的代码非常适合解决小部件问题,但在菜单中显示自定义帖子类型时会给我带来问题,如果除了“is_category”之外还添加了“is_tag”,则可以通过以下方式解决
function view_AllCustomPost($query) {
if ($query->is_category) $query->set( ‘post_type’, array(
‘post’, ‘nav_menu_item’, ‘custom_post_type’)
);
}
add_action(‘pre_get_posts’, ‘view_AllCustomPost’);
我们最近的任务是更新一个旧的 WP 网站,这个帖子帮了大忙,但我们的导航项消失了,所以请确保将“nav_menu_item”放回去。
我修改主查询的效果更好。
http://wordpress.stackexchange.com/questions/27104/how-to-display-regular-posts-custom-post-types-that-fall-under-a-category-usin
好的,我上面的评论最终没有用。我遇到的问题是在自定义帖子类型的存档页面上。我能够用这个让一切正常工作
希望这能帮助某些人,因为这很难解决;)
谢谢!这对我有用。
Daan 的解决方案对我的 WooThemes 有效。我只是将该函数添加到我的自定义插件文件中。
谢谢!
实际上,Daan 的代码在我的作者存档页面上无法正常工作,所以我不得不从数组中删除“nav menu item”和“post”。我的最终有效代码是
这是一个将名为“lecture”的自定义帖子类型添加到您的分类法和日期存档中的其他语法示例——在我看来更优雅
如果您想包含所有帖子类型,您可以使用
get_post_types()
动态获取所有自定义帖子类型谢谢 Alec!这篇文章绝对应该更新您的解决方案。
先生,您真是摇滚明星!!
这个帮助了我
`$args = array( ‘posts_per_page’ => 10,’post_type’=>’videos_’, ‘category’ => 3 );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
<a href="”>
<?php endforeach; `
很高兴您发现它有用,Ben!
这段代码救了我。非常感谢。
正在为我工作的公司开发一个自定义网站,使用 wordpress,但我的主管希望帖子像页面一样工作,而页面像帖子一样工作。我已经完成了这一点,但我正在 [好吧,如果我有头发,我会……但我离题了] 绞尽脑汁试图弄清楚如何让它在点击通常会从 archive.php 文件中获取帖子的菜单项时,我们的内容托管在页面中,因此这显示没有匹配搜索结果……没有返回值。
我已经尝试了这里列出的所有代码段,但都无济于事,而且我在 php 方面充其量只是一个初学者。我想要的只是页面像帖子一样在存档功能中呈现!
求助!?
太棒了!谢谢!
大家好。
很好的例子!
category.php 文件能否包含自定义文章类型?
拥抱!
再次感谢,伙计。你真是太棒了。
谢谢。
不错的提示。
非常棒的技巧。谢谢 :)
Jon B 和 Daan 的解决方案对我都有效,太棒了!谢谢!
为什么这不能开箱即用?!让我搜索了好几个小时 :S
此代码片段在 WPML 中不起作用。有人知道为什么它在多语言网站上不起作用吗?
谢谢,
Bart
我遇到了同样的问题……你找到解决方案了吗?你联系过 WPML 支持团队吗?
还有其他人遇到同样的问题吗?有没有人有想法或解决方案?
非常感谢你的帮助,代码片段在没有 WPML 的情况下运行良好;)
Emilien
嗨,Emilien,
我解决了这个问题。我也向 WPML 报告了这个问题,但他们有点忽略了这个问题……这是帖子和我的解决方法:https://wpml.org/forums/topic/wpml-breaks-category-archives-for-custom-post-types/
嗨,Bart,感谢你的留言,
我最终解决了这个问题,但方法与你不同。这是我想到的代码片段。
再次感谢你的帮助,祝你度过美好的一天!
Emilien
感谢你的帖子。是否可以将自定义文章类型中的项目/类别添加到默认的 WordPress 归档小部件?它只显示帖子。
感谢你的帖子,看到菜单上的人解决了问题,但我没有 :(
我正在制作自己的主题,并且成功地创建了 2 个自定义文章类型,并在我的博客中显示它们。唯一的问题是我的 archive.php 只显示常规帖子,不显示我的自定义文章类型(使用此代码后也是如此)
有人能告诉我我还必须检查哪个文件来解决这个问题吗?
谢谢..
我同意 Vlada 的观点。有没有人在主博客、类别页面和归档页面上都有效的解决方案?如果已经发布了,我深感抱歉,但我似乎在任何地方都找不到解决方案。
如何将自定义文章页面链接到归档页面
上面任何解决方案的问题,我都没有看到任何人提到过,那就是所有内容都能正常工作,直到你进入自定义文章类型的归档页面。它显示所有帖子,就像主 feed 一样。这是所有 WordPress 页面上最终可行的解决方案。如果你看到任何错误或找到更好的方法,请告诉我 :)
我遇到了一些问题,原始代码导致常规帖子的过滤器出现问题,“无效的帖子类型”。但是,Develocom 在此处的更新代码片段有效。
是的!经过一天半的时间,终于找到了一个对我有用的方法!
您好,我遇到了与这里其他人相同的问题,我的导航菜单消失了。奇怪的是,在我构建此主题时,我的本地安装一切正常,但是当我在服务器上安装主题时,我的菜单就消失了。如果有人有任何见解,我将不胜感激。
该站点在这里。
这是我正在使用的代码,改编自此主题
我代码的其他地方有语法错误!哈哈!
嗨,
是否可以在同一代码段中定义或限制每页帖子的数量?
谢谢,
这非常有帮助,谢谢!它对我有用。
我尝试了提供的不同解决方案,并遇到了一些问题,具体取决于版本。最大的问题是我的砌体布局 - 无论如何,我结合了想法,并且我所有的问题都解决了 - 没有导航菜单问题,没有砌体布局问题怪异,并且所有内容都出现在需要的位置,抱歉,这太长了,我只是太高兴了。如果它可以帮助其他人 - 这里有它……
仍在稍微调整网站样式,但你可以在这里查看
感谢 Amy!!我已经研究这个问题太久了,你的解决方案非常完美!!我之前尝试的所有其他代码片段都遇到了各种各样的麻烦。再次感谢你的分享!你太棒了!!:D
有人可以帮我吗?我正在自定义搜索 - 但当我进行自定义时,我的导航消失了..
找到了解决方案,必须在 if 条件中添加
$query->is_main_query()
,请参阅http://wordpress.stackexchange.com/a/52530你好,
如果只有自定义文章类型(没有博客/默认帖子),则小部件-归档和小部件-日历为空。如果该期间没有至少一个博客帖子,则我无法在归档中看到月份或在日历中点击某一天。页面归档正常(显示具有相同标签或日期的所有帖子)
当只有自定义帖子时,有没有办法使用小部件?
我尝试了很多方法.. 我使用此代码
add_filter( ‘pre_get_posts’, ‘my_get_posts’);
function my_get_posts( $query ) {
if(!is_admin()){
if (!is_post_type_archive() && $query->is_archive())
$query->set( ‘post_type’, array( ‘post’,’portfolio’ ) );
return $query;
}
}
谢谢。
为了避免自己手动输入每个自定义文章类型,我执行了以下操作来自动添加任何公共文章类型,它似乎有效。
在添加未来的文章类型时,可以使主题更容易维护。
我尝试了所有代码。经过多次尝试后……此代码对我有用。这是我的代码
你好,Chris,
这里有一个我制作的插件,可以帮助创建任何 post_type/taxonomy 的自定义归档。您可以从许多基本元素中选择,例如卡片、徽章、pin-card(类似 Pinterest 的布局)。然后,您可以根据文章类型、分类法等过滤任何自定义文章。最后,您可以对您的“元素”进行任何 css 更改。所有更改都显示在实时预览中。
它在这里:http://www.pauple.com/elementary/
我的天。如果我 2 小时前就搜索了它……谢谢!
顺便说一句,这段代码对我有用,我无需修改它,只需将其粘贴到我的 functions.php 中,然后瞧!
谢谢!这段代码对我有用!
问题已解决,谢谢
好的。这段代码拯救了我的理智。哇。不敢相信我不知道这一点:归档不显示 CPT。谢谢。谢谢。谢谢。
谢谢,但我需要添加多个自定义文章类型,我无法弄清楚语法 - 我猜我应该添加一个文章类型的数组?
任何帮助将不胜感激!
非常感谢这些代码片段!我知道有办法做到这一点,但我不得不使用必应搜索才能找到答案。这在 2019 年仍然在帮助人们。
嘿,团队 - 我们如何为自定义帖子类型允许使用自定义日期归档模板?除了仅分配使用 date.php 之外,是否可以优先使用像 date-mycustomposttype.php 这样的模板?
这似乎不再起作用了。我使用 Divi 将其添加到我的网站上,并且多年来一直运行良好。今天我检查了一下,帖子不再显示在我的 Feed 中。知道为什么吗?
我不确定为什么它不再起作用,但也许稍微重写一下函数会有所帮助。
或者,如果可能,在子主题中添加一个 `archive-$post-type.php` 文件并在其中添加循环。