主页上的自定义帖子类型-Studiopress Genesis框架

时间:2013-03-15 作者:Deepak Kundu

我已使用以下函数注册新的“指南”内容类型:

add_action( \'init\', \'guide_post_type\' );
function guide_post_type() {
register_post_type(\'guides\', 
    array(  
        \'label\' => \'Guides\',
        \'description\' => \'\',
        \'public\' => true,
        \'show_ui\' => true,
        \'show_in_menu\' => true,
        \'capability_type\' => \'post\',
        \'hierarchical\' => false,
        \'rewrite\' => array(\'slug\' => \'guide\'),
        \'query_var\' => true,
        \'has_archive\' => true,
        \'exclude_from_search\' => false,
        \'supports\' => array(\'title\',\'editor\',\'excerpt\',\'comments\',\'thumbnail\',\'author\',),
        \'labels\' => array (
            \'name\' => \'Guides\',
            \'singular_name\' => \'Guide\',
            \'menu_name\' => \'Guides\',
            \'add_new\' => \'Add Guide\',
            \'add_new_item\' => \'Add New Guide\',
            \'edit\' => \'Edit\',
            \'edit_item\' => \'Edit Guide\',
            \'new_item\' => \'New Guide\',
            \'view\' => \'View Guide\',
            \'view_item\' => \'View Guide\',
            \'search_items\' => \'Search Guides\',
            \'not_found\' => \'No Guides Found\',
            \'not_found_in_trash\' => \'No Guides Found in Trash\',
            \'parent\' => \'Parent Guide\',
            ),
    ) 
);
}
我想在我的博客主页上显示这些帖子以及普通帖子。为此,我创建了一个home.php 具有以下代码的文件:

remove_action( \'genesis_loop\', \'genesis_do_loop\' );
add_action( \'genesis_loop\', \'custom_homepage_loop\' );

function custom_homepage_loop() {
global $paged;
global $query_args;
$args = array(
    \'post_type\' => array(\'post\',\'guide\')
);

genesis_custom_loop( wp_parse_args($query_args, $args) );
}

genesis();
然而,我仍然无法在我的主页上看到任何引导帖子类型。

有什么建议吗?

3 个回复
SO网友:revo

要显示自定义帖子类型中的帖子,可以使用wp_query() 对象在您的情况下,这就是您想要的:

<?php
    $arg = array(
            \'post_type\' => \'guide\', // this can be an array : array(\'guide\',\'guide1\',...)
            \'posts_per_page\' => 10,
            \'order\' => \'DESC\',
            // \'category_name\' => 6
            \'post_status\' => \'publish\'
            );
    $query = new WP_Query($arg);
    if ( $query->have_posts() ) : 
        while ( $query->have_posts() ) : $query->the_post(); 
        ?>
            <article>
                <h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
                <div><?php the_excerpt(); ?></div>
            </article>
        <?php
        endwhile;
    endif;
    wp_reset_query(); 
?> 

SO网友:Brad Dalton

在子主题函数文件中:

add_action( \'pre_get_posts\', \'wpsites_add_custom_post_types_to_loop\' );

function wpsites_add_custom_post_types_to_loop( $query ) {

if ( is_home() && $query->is_main_query() ) {

$query->set( \'post_type\', array( \'post\', \'guides\' ) );

return $query;

    }
}
此代码将在主页循环中包含您的单个CPT页面,并根据您的阅读设置将其显示在您的帖子页面上,这些设置可能是您的首页,也可能不是您的首页。

SO网友:NW Tech

我在使用Genesis框架创建新主页时也遇到了这个问题。我发现一个更简单的解决方案是创建一个新模板,然后从主页的页面属性中选择该模板。Here\'s some more information.

结束

相关推荐

Posting to loop.php file

我正在尝试发布到循环。php模板文件,但由于某种原因,它不会通过,通常它应该可以工作,但它不是。有没有其他方法来完成这项工作?这是我索引中的内容。主题的php文件。$(\'.load_more_cont a\').live(\'click\', function(e) { leftwrapper = \'THIS IS WORKING\'; $.ajax({ url: \"<?php blogin

主页上的自定义帖子类型-Studiopress Genesis框架 - 小码农CODE - 行之有效找到问题解决它

主页上的自定义帖子类型-Studiopress Genesis框架

时间:2013-03-15 作者:Deepak Kundu

我已使用以下函数注册新的“指南”内容类型:

add_action( \'init\', \'guide_post_type\' );
function guide_post_type() {
register_post_type(\'guides\', 
    array(  
        \'label\' => \'Guides\',
        \'description\' => \'\',
        \'public\' => true,
        \'show_ui\' => true,
        \'show_in_menu\' => true,
        \'capability_type\' => \'post\',
        \'hierarchical\' => false,
        \'rewrite\' => array(\'slug\' => \'guide\'),
        \'query_var\' => true,
        \'has_archive\' => true,
        \'exclude_from_search\' => false,
        \'supports\' => array(\'title\',\'editor\',\'excerpt\',\'comments\',\'thumbnail\',\'author\',),
        \'labels\' => array (
            \'name\' => \'Guides\',
            \'singular_name\' => \'Guide\',
            \'menu_name\' => \'Guides\',
            \'add_new\' => \'Add Guide\',
            \'add_new_item\' => \'Add New Guide\',
            \'edit\' => \'Edit\',
            \'edit_item\' => \'Edit Guide\',
            \'new_item\' => \'New Guide\',
            \'view\' => \'View Guide\',
            \'view_item\' => \'View Guide\',
            \'search_items\' => \'Search Guides\',
            \'not_found\' => \'No Guides Found\',
            \'not_found_in_trash\' => \'No Guides Found in Trash\',
            \'parent\' => \'Parent Guide\',
            ),
    ) 
);
}
我想在我的博客主页上显示这些帖子以及普通帖子。为此,我创建了一个home.php 具有以下代码的文件:

remove_action( \'genesis_loop\', \'genesis_do_loop\' );
add_action( \'genesis_loop\', \'custom_homepage_loop\' );

function custom_homepage_loop() {
global $paged;
global $query_args;
$args = array(
    \'post_type\' => array(\'post\',\'guide\')
);

genesis_custom_loop( wp_parse_args($query_args, $args) );
}

genesis();
然而,我仍然无法在我的主页上看到任何引导帖子类型。

有什么建议吗?

3 个回复
SO网友:revo

要显示自定义帖子类型中的帖子,可以使用wp_query() 对象在您的情况下,这就是您想要的:

<?php
    $arg = array(
            \'post_type\' => \'guide\', // this can be an array : array(\'guide\',\'guide1\',...)
            \'posts_per_page\' => 10,
            \'order\' => \'DESC\',
            // \'category_name\' => 6
            \'post_status\' => \'publish\'
            );
    $query = new WP_Query($arg);
    if ( $query->have_posts() ) : 
        while ( $query->have_posts() ) : $query->the_post(); 
        ?>
            <article>
                <h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
                <div><?php the_excerpt(); ?></div>
            </article>
        <?php
        endwhile;
    endif;
    wp_reset_query(); 
?> 

SO网友:Brad Dalton

在子主题函数文件中:

add_action( \'pre_get_posts\', \'wpsites_add_custom_post_types_to_loop\' );

function wpsites_add_custom_post_types_to_loop( $query ) {

if ( is_home() && $query->is_main_query() ) {

$query->set( \'post_type\', array( \'post\', \'guides\' ) );

return $query;

    }
}
此代码将在主页循环中包含您的单个CPT页面,并根据您的阅读设置将其显示在您的帖子页面上,这些设置可能是您的首页,也可能不是您的首页。

SO网友:NW Tech

我在使用Genesis框架创建新主页时也遇到了这个问题。我发现一个更简单的解决方案是创建一个新模板,然后从主页的页面属性中选择该模板。Here\'s some more information.

相关推荐

Increase offset while looping

我正在编写一个自定义帖子插件,它将自定义帖子分组显示为选项卡。每组4个岗位。是否可以编写一个偏移量随每次循环而增加的查询?因此,结果将是:-第一个查询显示从1到4的帖子-第二个查询显示从5到8的帖子-第三个查询显示从9到12的帖子等。 <div class=\"official-matters-tabs\"> <?php $args = array(\'post_type\' => \'official-matters\', \'showp