我已经创建了三种自定义帖子类型及其登录页(page-events.php等):
活动、静修、辅导
但首先,我需要一些类别,我将在登录页(page events.php)上列出这些类别作为菜单,在这些类别中我需要博客帖子。
我已为此事件自定义帖子类型创建了自定义分类:
register_taxonomy("event", array("event"), array("hierarchical" => true, "label" => "Event Type", "singular_label" => "Event Types ", "rewrite" => true));
事件的自定义post类型函数:
add_action( \'init\', \'create_events\' );
function create_events() {
$labels = array(
\'name\' => _x(\'Events\', \'post type general name\'),
\'singular_name\' => _x(\'Event\', \'post type singular name\'),
\'add new, edit, etc, save space\'
\'not_found_in_trash\' => __(\'No Events found in Trash\'),
\'parent_item_colon\' => \'\'
);
$supports = array(\'title\', \'editor\', \'revisions\', \'excerpt\', \'thumbnail\', \'page-attributes\');
register_post_type( \'event\',
array(
\'labels\' => $labels,
\'public\' => true,
\'has_archive\' => true,
\'hierarchical\' => true,
\'query_var\' => true,
\'supports\' => $supports
)
);
}
还没有尝试添加帖子/页面,只是创建了它们,我可以添加新事件并在右侧框中选择事件类型。但是
这是正确的方法吗?这对我有用吗?还有什么我可以做得更好的吗?这样我就不会很难在这个自定义帖子类型下查询属于特定分类法的帖子了?
我从未使用过自定义帖子类型和分类法,这让我有点困惑,I just want to make sure I get the right approach.
谢谢
最合适的回答,由SO网友:David Gard 整理而成
不,这是正确的方法,但有一个建议-不要给自定义帖子类型和自定义分类法指定相同的slug(除非指定重写名称,而不是“true”),因为这会导致重写规则出现问题。
如果在添加自定义类型后遇到问题,请将permlinks切换为默认值,保存它们,然后恢复到之前的状态(假设您使用了它们)。
查询帖子很容易(只要你能理解它)。例如,查询“event”类型的帖子-
$taxonomy = get_query_var(\'taxonomy\'); // If you are going to this page with a taxonomy selected, or you can explicitly declare a taxonomy if you wish
$term = get_query_var(\'term\'); // If you are going to this page with a term selected, or you can explicitly declare a term if you wish
$args = Array( // Array of arguments for query_posts()
\'numberposts\' => -1,
\'posts_per_page\' => get_option(\'posts_per_page\'),
\'paged\' => $paged,
\'post_type\' => array(\'events\'),
$taxonomy => $term
);
query_posts($args);