主页自定义帖子类型模板

时间:2012-09-02 作者:Damian Caynes

我正在写一个压缩页面插件,我遇到了一个问题。该插件需要能够显示带有自定义模板的自定义帖子类型,并且能够用于主页。

因此,我得到了为自定义帖子类型设置模板的代码:

add_filter(\'single_template\', \'my_custom_template\');

function my_custom_template($single) {
global $wp_query, $post;

if ($post->post_type == "squeeze_page"){
    if(file_exists(ABSPATH . \'/wp-content/plugins/wpsqueezr/squeeze_page.php\'))
        return ABSPATH . \'/wp-content/plugins/wpsqueezr/squeeze_page.php\';
}
return $single;
}
这对于显示自定义帖子类型很好。将其添加到阅读设置中可以:

add_filter( \'get_pages\',  \'add_my_cpt\' );

function add_my_cpt( $pages )
{
     $my_cpt_pages = new WP_Query( array( \'post_type\' => \'squeeze_page\' ) );
     if ( $my_cpt_pages->post_count > 0 )
     {
         $pages = array_merge( $pages, $my_cpt_pages->posts );
     }
     return $pages;
}
现在这里是混乱的地方。这一切都很好,但如果您将自定义帖子类型设置为主页,它会重定向到自定义帖子类型页面,这不好。

我找到了将自定义帖子类型添加到frontpage的代码,但它没有显示我为单个页面设置的自定义模板:

function enable_front_page_stacks( $query ){
    if(( ! isset($query->query_vars[\'post_type\']) || \'\' == $query->query_vars[\'post_type\']) && 0 != $query->query_vars[\'page_id\'])
        $query->query_vars[\'post_type\'] = array( \'page\', \'squeeze_page\' );
}
add_action( \'pre_get_posts\', \'enable_front_page_stacks\' );
我需要在主页上显示自定义帖子类型的自定义模板,而不是主页模板中的自定义帖子类型。我尝试了home\\u模板过滤器,但没有任何效果。

有什么想法吗?

编辑:解决了这个问题,只需添加一个page\\u template筛选器和一个\\u template筛选器。我希望这对其他人有帮助!干杯

1 个回复
SO网友:Damian Caynes

忘记了这个帖子。

解决了这个问题,只需添加一个page\\u template filter和一个\\u template filter即可。我希望这对其他人有帮助!干杯

结束

相关推荐

Plugins_url()错误地返回带有www子域的URL

我正在开发一个插件,为了回答这个问题,我们称之为“我的插件”。我的插件目录如下所示:my-plugin/ |- image.jpg |- script.js |- script.php |- plugin.php |- ajax.php 在脚本中。php我有一段代码指定了一些JS。在其中,我需要一个ajax的URL。php。e、 g.:<script type=\"text/javascript\"> foo = jQuer