我找不到WP_Query
在我的自定义帖子类型存档页面中工作。有人能告诉我我做错了什么吗?如果有任何帮助,我将不胜感激。
这是密码archive-bulletin.php
:
<?php get_header();
//wp_reset_query();
wp_reset_postdata();
$q = new WP_Query("post-type=bulletin" );
show_var("the query", $q);
if ($q->have_posts() ) :
while ($q->have_posts() ) : $q->the_post();
echo "<h1>" . the_title(). "</h1>";
the_content();
endwhile;
endif;
wp_reset_postdata();
?>
而不是显示我的
bulletin
贴子,仅显示
post
职位。无论是否复位,结果都相似。(功能
show_var()
只需包装
var_dump()
在a中
<pre>
.)
这个bulletin
帖子按预期显示archive.php
(即,当没有CPT存档模板时)。如果有帮助,下面是我用来在插件的主文件中注册帖子类型等的代码:
// register bulletin post-type
add_action( \'init\', \'bulletin_init\' );
function bulletin_init() {
$labels = array(
\'name\' => __("Bulletins"),
\'singular_name\' => __("Bulletin"),
\'menu_name\' => __("Bulletins"),
\'add_new\' => _x(\'Add New\', \'bulletin\'),
\'add_new_item\' => __("Add New Bulletin"),
\'edit_item\' => __("Edit Bulletin"),
\'new_item\' => __("New Bulletin"),
\'view_item\' => __("View Bulletin"),
\'search_items\' => __("Search Bulletins"),
\'not_found\' => __("Bulletin Not Found"),
\'not_found_in_trash\' => __("No bulletins found in trash"),
);
$args = array(
\'labels\' => $labels,
\'public\' => true,
\'publicly_queryable\' => true,
\'exclude_from_search\' => false,
\'show_ui\' => true,
\'show_in_menu\' => true,
\'query_var\' => true,
\'rewrite\' => true,
\'menu_position\' => 10,
\'supports\' => array(
\'editor\',
\'excerpt\',
\'revisions\'
),
\'taxonomies\' => array( \'\' ),
\'has_archive\' => true
);
register_post_type("bulletin", $args );
add_filter(\'manage_edit-bulletin_columns\', \'add_bulletin_columns\');
add_action(\'manage_bulletin_posts_custom_column\', \'bulletin_columns_data\', 10, 2);
add_filter( \'manage_edit-bulletin_sortable_columns\', \'bulletin_columns_sortable\' );
add_filter( \'request\', \'bulletin_columns_orderby\' );
}
我当然把代码删减了
archive-bulletin.php
突出根本问题。我更大的努力是创建一个CPT归档页面,该页面将显示不是按发布日期排序的帖子,而是按自定义元值排序的帖子(
bulletin_date
). 我看过那篇帖子
here, 但它与不适用的细节纠缠在一起,我无法从中得到任何东西。
编辑以下是我的pre_get_posts
解决更大问题的功能:
function archive_bulletin_sort( $q ) {
if( $q->is_post_type_archive(\'bulletin\') ){// && $q->is_main_query() ) {
$q->set(\'meta_key\', \'bulletin_date\');
$q->set(\'orderby\', \'meta_value\');
$q->set(\'order\', \'DESC\');
}
}
add_action( \'pre_get_posts\', \'archive_bulletin_sort\' );