在最近的帖子中显示自定义帖子类型

时间:2016-09-30 作者:Carol.Kar

我有以下问题:

我已创建自定义帖子类型matratze 目前除了自定义帖子外,没有其他帖子。因此,最近的帖子下没有显示任何内容。

自定义帖子类型如下所示:

[自定义帖子]

无法显示我最近的帖子:

[主主页]

我尝试了以下方法:

add_filter( \'pre_get_posts\', \'my_get_posts\' );

function my_get_posts( $query ) {

    if ( is_home() && $query->is_main_query() )
        $query->set( \'post_type\', array( \'post\', \'page\', \'matratze\' ) );

    return $query;
}
有什么建议我做错了什么?

感谢您的回复!

2 个回复
SO网友:Charles

为了在侧栏的常规最近发布小部件中显示自定义发布类型,我们使用了以下功能,这些功能对我们来说是完美的
我们使用自己的功能,并试图防止插件经常造成的开销

注意:在将此功能添加到之前进行备份functions.php

/**
 * Display CPT on Recent Post widget
 *
 * @version WP 4.6.1
 */
add_filter( \'widget_posts_args\', \'wpse241060_widget_recent_post_4_cpt\' );
function wpse241060_widget_recent_post_4_cpt( $params )
{
    $params[\'post_type\'] = array( \'post\', \'cpt01\', \'cpt02\');
    return $params;
}
阅读更多信息Codex

SO网友:C Sabhar

Wordpress提供wp_get_recent_posts() 函数可从任何帖子类型中检索多个最近发布的帖子。您可以将自定义帖子类型作为参数传递,以检索最近的帖子列表。

$args = array(
    \'numberposts\' => \'5\',
    \'orderby\' => \'post_date\',
    \'order\' => \'DESC\',
    \'post_type\' => \'matratze\',
    \'post_status\' => \'publish\'
);
$recent_posts = wp_get_recent_posts( $args );
Wordpress Core Recent Posts widget does not provide feature to list posts from custom post type. If you want to list post using Widget, you can use Posts in Sidebar Plugin. 这个插件非常强大,并提供了许多选项来显示基于许多标准的帖子,包括来自自定义帖子类型的最新帖子。

UPDATE:

以下是可用于特定案例的代码:

您正在使用选项卡小部件显示最近使用WP\\U查询的帖子。因此,您可以使用pre\\u get\\u posts来设置post类型筛选器。

function filter_recent_get_posts($query) {
    if (isset($_POST[\'tab\']) && ($_POST[\'tab\'] == \'recent\')) {
        $query->set(\'post_type\', \'matratze\');
    }
}
add_action( \'pre_get_posts\', \'filter_recent_get_posts\' );

相关推荐

如何修改WP_INCLUDE/BLOCKS/LATEST_posts.php

我是WordPress开发的初学者,希望得到一些帮助。我在一个简单的WordPress网站上工作。基本上,用户希望在主页上显示最新的帖子。我使用了最新帖子块,并将其设置为显示整个帖子内容,现在用户不希望帖子标题链接到单个帖子页面(因为帖子的内容显示在主页上)。如何安全地修改模板文件,使其像h2标记一样使用,而不是在主题中使用的href标记。我知道您可以创建子主题并修改wp_content 文件,但我不确定如何处理中的文件wp_include. 我读到一些关于修改functions.php 但我不确定,如果