我对自定义帖子类型有点陌生,也许这不是我想要实现的目标的正确解决方案。
我正在努力实现的目标:
用户“添加新属性”。这将有选项添加图像和15个自定义信息字段添加的所有属性都显示在特定页面上我尝试过使用高级自定义字段,对于一个页面来说效果很好,但不可重复。
我使用自定义帖子类型将属性添加到左侧的管理区域,但不确定如何将其添加到一个页面。
以下是我目前掌握的情况:
function create_post_type() {
register_post_type( \'my_properties\',
array(
\'labels\' => array(
\'name\' => __( \'Commercial Properties\' ),
\'singular_name\' => __( \'My Property\' )
),
\'public\' => true,
\'menu_position\' => 5,
\'rewrite\' => array(\'slug\' => \'properties\')
)
);
}
add_action( \'init\', \'create_post_type\' );
function property_taxonomy() {
register_taxonomy(
\'properties\',
\'my_properties\',
array(
\'hierarchical\' => true,
\'label\' => \'Category\',
\'query_var\' => true,
\'rewrite\' => array(\'slug\' => \'MyProperties\')
)
);
}
add_action( \'init\', \'property_taxonomy\' );
我在自定义帖子类型上显示了自定义字段,但不确定如何在一个页面上显示它们?
最合适的回答,由SO网友:Milo 整理而成
您所描述的是定制帖子类型的典型用例。当你register your post type, 设置has_archive
参数到true
WordPress将生成一个自定义帖子类型的归档页面,该页面将是您所有属性帖子的列表。
通常,显示的属性帖子数将使用您的管理设置Blog pages show at most
, 位于以下位置Settings > Reading
, 但您可以通过pre_get_posts
措施:
function property_posts_per_page( $query ) {
if ( is_admin() || ! $query->is_main_query() )
return;
if ( $query->is_post_type_archive( \'property\' ) ) {
$query->set( \'posts_per_page\', -1 );
}
}
add_action( \'pre_get_posts\', \'property_posts_per_page\' );