我已经安装了Custom Post Type UI插件。激活此插件后,我创建了一个名为的自定义帖子类型portfolio
。现在,我想在前端的投资组合页面上使用它。如何获取所有自定义帖子类型的帖子portfolio
?
我已经安装了Custom Post Type UI插件。激活此插件后,我创建了一个名为的自定义帖子类型portfolio
。现在,我想在前端的投资组合页面上使用它。如何获取所有自定义帖子类型的帖子portfolio
?
Answers:
query_posts( array( 'post_type' => array('post', 'portfolio') ) );
其示出了内部正常职位和portfolio
类型
要么
query_posts('post_type=portfolio');
仅portfolio
。
用作常规WP查询-阅读Codex:http : //codex.wordpress.org/Function_Reference/query_posts#用法和http://codex.wordpress.org/Function_Reference/query_posts#Post_.26_Page_Parameters
<?php
query_posts(array(
'post_type' => 'portfolio',
'showposts' => 10
) );
?>
<?php while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<p><?php echo get_the_excerpt(); ?></p>
<?php endwhile;?>
后一个答案作为主要答案使用query_posts()
,永远不要这样做。
使用pre_get_posts
过滤器,然后portfolio
为主要查询设置帖子类型。使用条件标签来确定要在哪里放置此过滤器。
<?php
defined( 'ABSPATH' ) OR exit;
/* Plugin Name: (#6417) "Portfolio" post type in query */
add_filter( 'pre_get_posts', 'wpse_6417_portfolio_posts' );
function wpse_6417_portfolio_posts( $query )
{
if (
! $query->is_main_query()
// Here we can check for all Conditional Tags
OR ! $query->is_archive() // For e.g.: Every archive will feature both post types
)
return $query;
$query->set( 'post_type', array( 'post', 'portfolio' ) );
return $query;
}
上面的代码是一个插件,但可以简单地塞入functions.php
主题文件中(不建议使用)。
将此代码添加到子主题功能文件中(推荐),以将单个CPT页面添加到主循环中
add_action( 'pre_get_posts', 'add_custom_post_types_to_loop' );
function add_custom_post_types_to_loop( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'portfolio' ) );
return $query;
}
来源http://codex.wordpress.org/Post_Types
或创建一个自定义的archive-portfolio.php页面模板,该模板仅显示您的CPT页面。仅当您尚未使用插件设置添加存档页面时,才需要执行此操作。
示例:“ has_archive” => true,
您还可以使用以下代码控制显示多少个页面以及它们在存档页面上的显示顺序:
add_action( 'pre_get_posts', 'cpt_items' );
function cpt_items( $query ) {
if( $query->is_main_query() && !is_admin() && is_post_type_archive( 'portfolio' ) ) {
$query->set( 'posts_per_page', '8' );
$query->set( 'order', 'ASC' );
}
}
query_posts()