组织内容的方式--自定义分类法还是其他方式?

时间:2012-08-31 作者:jamie

我花了几个小时试图理解自定义分类法功能,但仍然不知道如何在我的情况下使用它。

我有餐馆。他们可以是某种类型的餐馆,也可以在某个城市。一家餐厅可以有多种类型,但不会位于多个城市。我需要能够按类型显示餐厅列表,然后根据所在城市列出它们。

基本上是:中国餐馆页面,该页面上是一个城市列表,每个城市下是一个餐厅名称列表,并链接到他们的页面。这家餐厅也可以出现在自助餐厅页面等。

关于为此设置自定义帖子类型和自定义分类的最佳方法,有什么建议吗?现在,我有餐厅帖子类型,餐厅类型作为标签。。。。。但在那之后,我不知道该去哪里。我怎样才能将城市添加到每个城市中,然后根据城市列出每个城市?这就是我目前的情况:

add_action(\'init\', \'rest_register\');

function rest_register() {

$labels = array(
    \'name\' => _x(\'Restaurants\', \'post type general name\'),
    \'singular_name\' => _x(\'Restaurant Type\', \'post type singular name\'),
    \'add_new\' => _x(\'Add New\', \'restaurant type\'),
    \'add_new_item\' => __(\'Add New Restaurant Type\'),
    \'edit_item\' => __(\'Edit Restaurant Type\'),
    \'new_item\' => __(\'New Restaurant Type\'),
    \'view_item\' => __(\'View Restaurant Type\'),
    \'search_items\' => __(\'Search Restaurants\'),
    \'not_found\' =>  __(\'Nothing found\'),
    \'not_found_in_trash\' => __(\'Nothing found in Trash\'),
    \'parent_item_colon\' => \'\'
);

$args = array(
    \'labels\' => $labels,
    \'public\' => true,
    \'publicly_queryable\' => true,
    \'show_ui\' => true,
    \'query_var\' => true,
    \'rest_icon\' => get_stylesheet_directory_uri() . \'/rest-admin-icon.png\',
    \'rewrite\' => true,
    \'capability_type\' => \'post\',
    \'hierarchical\' => true,
    \'menu_position\' => null,
    \'supports\' => array(\'title\',\'editor\',\'thumbnail\')
  ); 

register_post_type( \'restaurants\' , $args );
}

/*end custom post type for menus*/

register_taxonomy("Restaurant Types", array("restaurants"), array("hierarchical" => true, "label" => "Restaurant Type", "singular_label" => "Restaurant Type", "rewrite" => true));

1 个回复
最合适的回答,由SO网友:xyz 整理而成

有时,把你的头缠在这些事情上会让人望而生畏。我确实很难接受:)

你说得对,这家餐厅是custom post type 然后您可以从custom taxonomies.

首先,最好将分类法的名称更改为更具可读性的名称。你可能在某个地方混淆了术语,然后restaurant-typerestaurant-location 更加清晰。

然后,要将一个城市分配给一个职位,我也会使用分类法。如果你使用层次分类法(如类别),你甚至可以将一家餐厅分为州、县、市甚至城市的一部分。在URL中,这看起来很酷,例如:/restaurants/california/alameda/fremont/sundale/

当然,一家餐厅不能同时在两个地方,但干净的内容也是关于内容经理的。取决于您是否希望用户对自己的餐厅进行分类。如果是这样,您可以在发布或更新帖子时进行检查,以便只勾选一个帖子restaurant-location 学期理想情况下,该检查应连接到save_post action, 像这样:

function check_for_multiple_tax_terms( $taxonomy ) {

    $tax_to_check = get_terms( $taxonomy );

    if ( count($tax_to_check) > 0 ) {

        // Do stuff when there\'s more than one term.
        // For example, throw an error.

    }
}
add_action(\'save_post\', \'check_for_multiple_tax_terms\');
我希望这对你有帮助!

结束

相关推荐