0

article/permalinkユーザーが専用ページにアクセスしたときに、特定のサイドバーで WP テーマを呼び出そうとしています。投稿カテゴリによって、どのサイドバーが表示されるかが決まります。

例: ユーザーが「赤」に分類された投稿のページに到達した場合permalink/dedicated article、テーマは投稿カテゴリを探し、カテゴリが赤であることを認識してから、「赤」と定義したサイドバーを見つけて取り込みます。 "。

このプロジェクトを始めたばかりで、以下で説明する内容についてご意見をいただければ幸いです。

これは、コードがそれを達成するためにどのように見えるべきだと思うかです:

<?php 
if (is_category()){  
    $current_cat = intval( get_query_var('cat') );  
    get_sidebar($current_cat);  //for category red get sidebar-red.php
} 
?>

パズルのピースをもう 1 つ:

追加の引数を追加して、投稿が未分類の場合 (つまり、何らかの理由で投稿を分類しなかった場合) にデフォルトのサイドバーを表示するようにしたいと考えています。コードはこのようなものであるべきだと思いますが、「存在しないカテゴリ」を定義する方法がわかりません。基本的には、ワードプレスに投稿カテゴリを探すように伝えたいです。存在しないことがわかった場合は、sidebar-default.php を取り込みます。

<?php
if (is_category()){  
   $current_cat = intval( get_query_var('cat') );  
   get_sidebar($current_cat); } 

elseif (is_category(**argument for nonexistent category**))   
   $current_cat = intval( get_query_var('cat') );  
   get_sidebar-default.php;  } 
?>
4

3 に答える 3

1

in_categorynotを使用する必要がありisます。

例えば:

<?php
if ( in_category('fruit') ) {
    get_sidebar('1');
} elseif ( in_category('vegetables') ) {
    get_sidebar('2');
} else {
    // do nothing or something
            // ...
}
?>

http://codex.wordpress.org/Function_Reference/in_category

<?php in_category( $category, $_post ) ?>

$category

(混合) (必須) ID (整数)、名前またはスラッグ (文字列)、またはこれらの配列で指定された 1 つ以上のカテゴリ デフォルト: なし

于 2011-12-12T04:22:42.010 に答える
0

CSS でさまざまなサイドバー クラスを定義できます。

スタイルと一致させたいカテゴリに、そのカテゴリのスラッグと同じ名前を付けます。テンプレートで、投稿のカテゴリ スラッグを使用してサイドバー div のクラスを定義します。

スラグを取得する方法については、次のとおりです。

<?php
if (is_category( )) {
$cat = get_query_var('cat');
$yourcat = get_category ($cat);
echo 'the slug is '. $yourcat->slug;
}
?>

したがって、サイドバーの div は次のようになります。

<div class="<?php echo yourcat->slug; ?> sidebar"></div>

これで、サイドバーに 2 つのクラスが与えられました。1 つは呼び出されsidebar、もう 1 つはカテゴリによって決定されます。

うまくいけば、これは理にかなっています。

于 2011-12-12T04:18:39.733 に答える
0

Category Templatesを使用することもできるので、category-red.php および category-blue.php ファイルを作成します。

于 2011-12-12T12:33:18.613 に答える