サポート » 使い方全般 » 複数のカテゴリに属する記事について

  • 解決済 hazudog

    (@hazudog)


    複数のカテゴリに属する記事についてです。

    例えば”ヨーグルト”という記事は”乳製品”のカテゴリと”デザート”というカテゴリに属したとします。

    その場合でのurlでのディレクトリはどのような法則で優先されるのでしょうか?
    つまりどちらのディレクトリが適用されますでしょうか?

    また、パン屑を表示するためにプラグインのBreadcrumb NavXTを使用しておりますが、
    こちらも意図しない方が、適用され表示されてしまいます。

    検索などしましたが解決しないため、
    ご教授いただきたくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    hazudogさん、こんにちは。

    パーマリンク
    wp-includes/link-template.phpのget_permalink関数より

    $category = '';
    if ( strpos($permalink, '%category%') !== false ) {
    	$cats = get_the_category($post->ID);
    	if ( $cats ) {
    		usort($cats, '_usort_terms_by_ID'); // order by ID
    		$category = $cats[0]->slug;

    get_the_categoryでカテゴリーを取得して _usort_terms_by_ID を用いてid順に並び替えを行っているので、idの少ない(最初に登録したカテゴリー)になるようです。

    Breadcrumb NavXT
    breadcrumb_navxt_class.phpのpost_taxonomyメソッドより

    $bcn_object = get_the_terms($id, $this->opt['post_' . $type . '_taxonomy_type']);
    if(is_array($bcn_object))
    {
    	//Now find which one has a parent, pick the first one that does
    	$bcn_use_term = key($bcn_object);
    	foreach($bcn_object as $key=>$object)
    	{
    		//We want the first term hiearchy
    		if($object->parent > 0)
    		{
    			$bcn_use_term = $key;
    			//We found our first term hiearchy, can exit loop now
    			break;
    		}
    	}
    	//Fill out the term hiearchy
    	$this->term_parents($bcn_object[$bcn_use_term]->term_id, $this->opt['post_' . $type . '_taxonomy_type']);
    }

    少々複雑ですが、名前順にカテゴリーを取得し、親階層を持つカテゴリーが存在すれば、そちらが優先されるようになっています。

    トピック投稿者 hazudog

    (@hazudog)

    jim912さん
    ご返答大変ありがとうございます。

    パーマリンクの方は、若い番号が適用される事は分かりましたが、Breadcrumb NavXTの方は未だに解決ができません。

    Breadcrumb NavXTにつきまして:

    名前順にカテゴリーを取得し、親階層を持つカテゴリーが存在すれば、そちらが優先されるようになっています。

    とのことですが、”乳製品”のカテゴリと”デザート”は同階層にあり、
    同じ親階層を持っていますので、どのような法則で優先されているのかが分かりません。

    尚現在、意図しないほうカテゴリがパン屑に表示されてしまい改善ができない状態にあります。

    なにかのプラグインを使用することや、解決策はありませんでしょうか。

    どうぞ宜しくお願いいたします。

    トピック投稿者 hazudog

    (@hazudog)

    先ほどの投稿間違っておりました。
    失礼いたしました。

    同じ親階層を持っていますので、どのような法則で優先されているのかが分かりません。

    と書きましたが、同じ親階層を持っていません。

    以下のような構造です。

    > 乳製品 > ヨーグルト
    > デザート > ヨーグルト

    パン屑にデザートと表示してほしいところ、乳製品と表示されています。

    どうぞ宜しくお願いいたします。

    モデレーター jim912

    (@jim912)

    hazudogさん

    Breadcrumb NavXTですが、

    1. get_the_termsで属するカテゴリーを名前順に取得
    2. 取得したカテゴリーを順番にチェックして、最初に親カテゴリーを持つものを採用。全てが親カテゴリーだった場合は、最初のカテゴリーを採用

    といった感じです。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「複数のカテゴリに属する記事について」には新たに返信することはできません。