2日以来、私はカスタム分類法(カテゴリー)に関する問題を解決しようとしています。私は 'Portfolio'と呼ばれるカスタム投稿タイプを持っており、それは期待通りに動作しますが、問題は私が登録した私の階層的分類法にあります。私はそれに名前を付けました:「ギャラリー」。カスタム分類法を表示する代わりに、私のブログのデフォルトのカテゴリを表示するだけです。私はここで同様の問題をいくつか見つけました、しかし私は本当に私のケースに他の解決策を採用する方法を知りません。残念ながら、私はワードプレスにはまったく新しいです。誰かが私を手伝ってくれる?
これは私のカスタム投稿タイプのテンプレートである私のloop.phpからのコードです(これは私のホームページです):
<div id="filtering-nav">
<a href="#" class="filter-btn"><span>Filter</span></a>
<ul>
<li><a href="#all" class="all">All</a></li>
<?php $args=array('orderby' => 'name');
$galleries=get_categories($args);
foreach($galleries as $gallery){ ?>
<li><a href="#<?php echo $gallery->gallery_nicename; ?>" class="<?php echo $gallery->gallery_nicename; ?>"><?php echo $gallery->name; ?></a></li>
<?php } ?>
</ul>
<div class="clearfix"></div>
これは私のfunction.phpからのコードです:
add_action('init', 'portfolio_register');
function portfolio_register() {
$labels = array(
'name' => _x('My Portfolio', 'post type general name'),
'singular_name' => _x('Portfolio Item', 'post type singular name'),
'add_new' => _x('Add New', 'portfolio item'),
'add_new_item' => __('Add New Portfolio Item'),
'edit_item' => __('Edit Portfolio Item'),
'new_item' => __('New Portfolio Item'),
'view_item' => __('View Portfolio Item'),
'search_items' => __('Search Portfolio'),
'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,
'menu_icon' => get_stylesheet_directory_uri() . '/images/portfolio-icon.png',
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => null,
'supports' => array('title','editor','author','thumbnail','comments')
);
register_post_type( 'portfolio' , $args );
flush_rewrite_rules();
}
// Custom taxonomy for Portfolio Categories (Galleries)
register_taxonomy('galleries', array('portfolio'), array('hierarchical' => true, 'label' => 'Galleries', 'singular_label' => 'Gallery', 'rewrite' => true, 'public' => true ));
前もって感謝します!
<div id="filtering-nav">
<a href="#" class="filter-btn"><span>Filter</span></a>
<ul>
<li><a href="#all" class="all">All</a></li>
<?php $args=array('orderby' => 'name','taxonomy'=>'galleries');
$galleries=get_categories($args);
foreach($galleries as $gallery){ ?>
<li><a href="<?php echo get_category_link( $gallery->term_id ) ; ?>" class="<?php echo $gallery->gallery_nicename; ?>"><?php echo $gallery->name; ?></a></li>
<?php } ?>
</ul>
<div class="clearfix"></div>
あなたがget_categories関数に引数を渡すとき、あなたは分類の代わりに分類を検索するために分類パラメータとして分類の名前を渡す必要があります...
これは完全な参照です..
http://codex.wordpress.org/Function_Reference/get_categories
あなたのコードを以下と比較してください、あなたはregister post typeのargsにタクソノミが欠けており、custom taxonomy argのslugを書き換えています。以下のコードは完璧に機能しています。
$custom_slug = get_option('slug') != '' ? get_option('slug') : 'portfolio';
$args = array(
'labels' => array(
'name' => __('Portfolio'),
'singular_name' => __('Portfolio Project'),
'add_new' => __('Add Project'),
'add_new_item' => __('Add Project'),
'new_item' => __('Add Project'),
'view_item' => __('View Project'),
'search_items' => __('Search Portfolio'),
'edit_item' => __('Edit Project'),
'all_items' => __('Complete Portfolio'),
'not_found' => __('No Projects found'),
'not_found_in_trash' => __('No Projects found in Trash')
),
'taxonomies' => array('portfolio-categories', 'portfolio-clients', 'portfolio-tags'),
'public' => true,
'show_ui' => true,
'_builtin' => false,
'_edit_link' => 'post.php?post=%d',
'capability_type' => 'post',
'rewrite' => array('slug' => __($custom_slug)),
'hierarchical' => false,
'menu_position' => 20,
'menu_icon' => WP_PLUGIN_URL . '/portfolio/images/icon.jpg',
'supports' => array('title', 'editor')
);
/** create portfolio categories (taxonomy) */
register_taxonomy('portfolio-categories', 'project', array(
'hierarchical' => true,
'show_ui' => true,
'rewrite' => array('slug' => __($custom_slug . '/category')),
'labels' => array(
'name' => __('Portfolio Categories'),
'singular_name' => __('Portfolio Category'),
'search_items' => __('Search Portfolio Categories'),
'popular_items' => __('Popular Portfolio Categories'),
'all_items' => __('All Portfolio Categories' ),
'parent_item' => __('Parent Portfolio Category'),
'parent_item_colon' => __('Parent Portfolio Category'),
'edit_item' => __('Edit Portfolio Category'),
'update_item' => __('Update Portfolio Category'),
'add_new_item' => __('Add New Portfolio Category'),
'new_item_name' => __('New Portfolio Category'),
'separate_items_with_commas' => __('Separate Portfolio Categories with commas'),
'add_or_remove_items' => __('Add or remove Portfolio Categories'),
'choose_from_most_used' => __('Choose from the most used Portfolio Categories')
)
));
/** create new custom post type */
register_post_type('portfolio', $args);