WordPress自定义帖子类型 - 仅显示某种类型的分类

时间:2017-07-16 15:55:56

标签: php wordpress

我希望展示属于特定菜单的特定菜肴。

  • 我创造了一个"菜肴"自定义帖子。
  • 我创建了一个自定义"菜单"分类,有3种类型的菜单('高级','儿童''概念')

如何在循环中创建条件语法以搜索该菜单类型并循环属于该菜单类型的帖子?

自定义帖子

function custom_post_type_food_dish()
{
    $labels = array(
        'name' => _x('Dishes', 'Post Type General Name', 'text_domain'),
        'singular_name' => _x('Dish', 'Post Type Singular Name', 'text_domain'),
        'menu_name' => __('Dishes', 'text_domain'),
        'name_admin_bar' => __('Dish', 'text_domain'),
        'archives' => __('Item Archives', 'text_domain'),
        'attributes' => __('Item Attributes', 'text_domain'),
        'parent_item_colon' => __('Parent Item:', 'text_domain'),
        'all_items' => __('All Items', 'text_domain'),
        'add_new_item' => __('Add New Item', 'text_domain'),
        'add_new' => __('Add New', 'text_domain'),
        'new_item' => __('New Item', 'text_domain'),
        'edit_item' => __('Edit Item', 'text_domain'),
        'update_item' => __('Update Item', 'text_domain'),
        'view_item' => __('View Item', 'text_domain'),
        'view_items' => __('View Items', 'text_domain'),
        'search_items' => __('Search Item', 'text_domain'),
        'not_found' => __('Not found', 'text_domain'),
        'not_found_in_trash' => __('Not found in Trash', 'text_domain'),
        'featured_image' => __('Featured Image', 'text_domain'),
        'set_featured_image' => __('Set featured image', 'text_domain'),
        'remove_featured_image' => __('Remove featured image', 'text_domain'),
        'use_featured_image' => __('Use as featured image', 'text_domain'),
        'insert_into_item' => __('Insert into item', 'text_domain'),
        'uploaded_to_this_item' => __('Uploaded to this item', 'text_domain'),
        'items_list' => __('Items list', 'text_domain'),
        'items_list_navigation' => __('Items list navigation', 'text_domain'),
        'filter_items_list' => __('Filter items list', 'text_domain'),
    );
    $args = array(
        'label' => __('Dish', 'text_domain'),
        'description' => __('food_dish is the dishes that go into the menu', 'text_domain'),
        'labels' => $labels,
        'supports' => array('title', 'editor', 'excerpt', 'thumbnail', 'comments', 'post-formats',),
        //'taxonomies'            => array( 'category', 'post_tag' ),
        'hierarchical' => false,
        'public' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'menu_position' => 5,
        'show_in_admin_bar' => true,
        'show_in_nav_menus' => true,
        'can_export' => true,
        'has_archive' => true,
        'exclude_from_search' => false,
        'publicly_queryable' => true,
        'capability_type' => 'page',
        'menu_icon' => 'dashicons-image-filter',
    );
    register_post_type('food_dish', $args);

}
add_action('init', 'custom_post_type_food_dish', 0);

自定义分类

function add_custom_taxonomies()
{
    // Add new "Menus" taxonomy to Posts
    register_taxonomy('menu', 'food_dish', array(
        // Hierarchical taxonomy (like categories)
        'hierarchical' => true,
        // This array of options controls the labels displayed in the WordPress Admin UI
        'labels' => array(
            'name' => _x('Menus', 'taxonomy general name'),
            'singular_name' => _x('Menu', 'taxonomy singular name'),
            'search_items' => __('Search Menus'),
            'all_items' => __('All Menus'),
            'parent_item' => __('Parent Menu'),
            'parent_item_colon' => __('Parent Menu:'),
            'edit_item' => __('Edit Menu'),
            'update_item' => __('Update Menu'),
            'add_new_item' => __('Add New Menu'),
            'new_item_name' => __('New Menu Name'),
            'menu_name' => __('Menus'),
        ),
        // Control the slugs used for this taxonomy
        'rewrite' => array(
            'slug' => 'menus', // This controls the base slug that will display before each term
            'with_front' => false, // Don't display the category base before "/locations/"
            'hierarchical' => true, // This will allow URL's like "/locations/boston/cambridge/"
        ),
    ));
}

add_action('init', 'add_custom_taxonomies', 0);

模板中的HTML / PHP部分:

<div class="container-fluid">
                <?php
                $args = array(
                    'post_type' => 'food_dish',
                    'taxonomy_name' => 'menu'
                );
                $loop = new WP_Query($args);
                while ($loop->have_posts()) : $loop->the_post();
                    //prePrint($loop);
                    if ( in_category( 'premium' ) ) {
                        ?>
                        <a href="<?php the_permalink() ?>">
                            <div class="row">
                                <div class="col-md-3">
                                    <?php the_post_thumbnail('medium', array('class' => 'img-responsive')); ?>
                                </div>
                                <div class="col-md-6">
                                    <p><?php the_excerpt() ?></p>
                                </div>
                                <div class="col-md-3">
                                    <h3><?php the_title(); ?></h3>
                                </div>
                            </div>
                        </a>
                        <?php
                    }
                endwhile; ?>
            </div>

0 个答案:

没有答案