xxxpudding
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: 特定のカテゴリーで、表示はそのまま、リンクだけを外したい>スタイルシートでインデントやマージン設定をしても効かないのです。
>なぜでしょうか?私のテスト環境ではちゃんと効いているのですが、pocopocoさんがお使いのテンプレートではcssの優先順位が負けてる可能性がありますね…@@;
まず、私の書いた以下のCSSをstyle.cssの一番下(←重要!)に記述されましたでしょうか?
ul.category .cat-item { /*親カテゴリーの名前(非リンク)*/ color:#66FF00; } ul.category .cat-item a{ /*親カテゴリーの名前(リンク)*/ color:#0000FF; } ul.category .children .cat-item a{ /*子カテゴリーの名前(リンク)*/ color:#FF9933; }
それでもcssが効かない場合は、上記のcss指定よりも優先度の高い指定がある為、そちらが有効になっていて、上記のcssが無効になっているのかと思います。
上記のcssをstyle.cssに追記して文字色は変わったが、インデントやマージンが効かないという場合は、直前の要素のfloatが解除されていない可能性があります。
これはテンプレートの作りやcssを見てみないと分からないので、今私が具体的に、解決に至るcssを書く事は出来ませんが、以下の2つの方法を試して見てください。
①私の書いたテンプレート側のコード1行目、
<ul class="category">
を
<ul id="category">
に変更し、style.cssの一番最後に以下を記述
(前回書いたものは削除してください)ul#category .cat-item { /*親カテゴリーの名前(非リンク)*/ color:#66FF00; } ul#category .cat-item a{ /*親カテゴリーの名前(リンク)*/ color:#0000FF; } ul#category .children .cat-item a{ /*子カテゴリーの名前(リンク)*/ color:#FF9933; }
②(文字色が変わっていてマージン等が効かない場合)
私の書いたテンプレート側のコード1行目、
<ul class="category">
の一行上に、
<div class="clearfix"></div>
と記述してください。これはフロートを解除する為です。上記の2つを行っても改善されない場合は、間違いなくcssの優先度が弱くcssが効いていないか、セレクタの指定が間違っていますので、スペルが間違っていないかや、クラスとidを間違えていないか等を確認してください。
ul#categoryより上位のセレクタから記述してあげれば、恐らく改善するのではないかと思います。
cssの優先順位については、以下のサイトに分かりやすく記載されていましたので、参考にしてみてくださいね。
http://www.stylish-style.com/csstec/base/order.htmlフォーラム: 使い方全般
返信が含まれるトピック: 特定のカテゴリーで、表示はそのまま、リンクだけを外したい<dl>から
<ul>
に変更したコードをアップしますね。
(吐き出したhtmlのマークアップが一部おかしかったのでその部分も修正しました;)単純に
<ul>
と<dl>
を変えれば良いのでしょうか?入れ替えるコードは以下の部分です。
<ul> <?php wp_list_categories('orderby=name&show_count=1&hide_empty=0&exclude=,2&title_li='); ?> </ul>
以下のコードにごっそり入れ替えます。
<ul class="category"> <?php $categories = get_categories( 'parent=0&hide_empty=0' ); $childrenFlg = false; foreach($categories as $category): $catName = $category->name; $catID = $category->cat_ID; $catUrl = get_category_link($catID); if(get_category_children($catID)){ //子カテゴリーの有無をチェック $childrenFlg = true; }else{ $childrenFlg = false; } if($childrenFlg == false){ //子カテゴリーが無い場合は親カテゴリーページにリンク echo '<li class="cat-item"><a href="'.$catUrl.'">'.$catName.'</a></li>'; echo wp_list_categories("child_of={$catID}&title_li&show_option_none="); }else{ //子カテゴリーがある場合は親カテゴリーにリンクを張らず、子カテゴリーをリスト表示 echo '<li class="cat-item">'.$catName.'</li>'; echo wp_list_categories("child_of={$catID}&title_li"); } endforeach; ?> </ul>
以下のCSSで見た目を整えます(プロパティには仮の文字色が入ってます)
ul.category .cat-item { /*親カテゴリーの名前(非リンク)*/ color:#66FF00; } ul.category .cat-item a{ /*親カテゴリーの名前(リンク)*/ color:#0000FF; } ul.category .children .cat-item a{ /*子カテゴリーの名前(リンク)*/ color:#FF9933; }
フォーラム: 使い方全般
返信が含まれるトピック: 特定のカテゴリーで、表示はそのまま、リンクだけを外したい親カテゴリーB、Cにも子カテゴリーがあるものとして考えておりました;
子カテゴリーが存在する場合は子カテゴリーにリンクを張り、子カテゴリーが無い場合は、親カテゴリーに、自身のカテゴリーページにリンクを張るように修正してみました。
<dl> <?php $categories = get_categories( 'parent=0&hide_empty=0' ); $childrenFlg = false; foreach($categories as $category): $catName = $category->name; $catID = $category->cat_ID; $catUrl = get_category_link($catID); if(get_category_children($catID)){ //子カテゴリーの有無をチェック $childrenFlg = true; }else{ $childrenFlg = false; } if($childrenFlg == false){ //子カテゴリーが無い場合は親カテゴリーページにリンク echo '<dt><a href="'.$catUrl.'">'.$catName.'</a></dt>'; echo '<dd>'.wp_list_categories("child_of={$catID}&title_li&show_option_none=").'</dd>'; }else{ //子カテゴリーがある場合は親カテゴリーにリンクを張らず、子カテゴリーをリスト表示 echo '<dt>'.$catName.'</dt>'; echo '<dd>'.wp_list_categories("child_of={$catID}&title_li").'</dd>'; } endforeach; ?> </dl>
また、「不要な親カテゴリーはget_categoriesのパラメータにexcludeでidを指定してあげてください。 」というのは、このメニュー一覧に掲載したくないカテゴリーを指定して除外するので、リンクを張らなくなるのではなく、リストから消えてしまいます。
例えば、
日本料理(親カテゴリー)
┗デザート
┗主食
┗おかずフランス料理(親カテゴリー)
┗デザート
┗主食
┗おかず中華料理(親カテゴリー)
┗デザート
┗主食
┗おかず私のブログ(親カテゴリー)
┗仕事
┗趣味
┗恋愛といった感じで、最上位のカテゴリー構成がされている場合「私のブログ」は他のお料理コンテンツと一緒に掲載するのは変な感じがしますよね。
こういう時はget_categoriesのパラメータexcludeに「私のブログ」カテゴリーのidを指定してあげると除外する事ができます。
「私のブログ」のカテゴリーIDが7だとして具体的に書くと、上記コードの2行目、
<?php $categories = get_categories( ‘parent=0&hide_empty=0’ );
を、
<?php $categories = get_categories( ‘parent=0&hide_empty=0&exclude=7’ );
というように&exclude=7を追加します。フォーラム: 使い方全般
返信が含まれるトピック: 特定のカテゴリーで、表示はそのまま、リンクだけを外したい初めまして、先日似たような処理をしたので参考になれば幸いです。
親カテゴリー
┗子カテゴリー1
┗子カテゴリー2
┗子カテゴリー3という構造で、子カテゴリーのみリンクが張られていればよいのですよね?
もし親カテゴリーの数が少ないのであれば、親カテゴリーは普通にhtmlで書いてしまい、
その下に親カテゴリーにぶら下がる子カテゴリーのみリスト表示するようにするのはどうでしょうか。<dl> <dt>親カテゴリー</dt> <dd><?php wp_list_categories(child_of=「親カテゴリーID」&title_li&お好みの条件); ?></dd> </dl>
こんな感じでどうでしょう。
ちょくちょく親カテゴリーが増減する場合や、親カテゴリーがたくさんある場合は、親カテゴリー名を自動で取得する仕組みがないとメンテナンスが面倒なので、まず最上位のカテゴリー名とIDを取得し、foreachで回して各親にぶら下がる子カテゴリーを表示するというのはどうでしょうか。
<dl> <?php $categories = get_categories( 'parent=0&hide_empty=0' ); foreach($categories as $category): $catName = $category->name; $catID = $category->cat_ID; echo '<dt>'.$catName.'</dt>'; echo '<dd>'.wp_list_categories("child_of={$catID}&title_li").'</dd>'; endforeach; ?> </dl>
不要な親カテゴリーはget_categoriesのパラメータにexcludeでidを指定してあげてください。
フォーラム: 使い方全般
返信が含まれるトピック: カスタム分類の子カテゴリー(孫カテゴリーIDは除く)のIDを取得したいget_term_children() でのやり方は分かりませんでしたが、とりあえず希望する出力結果を得る事が出来ました。
$objCategory = get_categories(array(‘parent’=>1,‘taxonomy’ => ‘fieldinfo’,’hide_empty’=>false));
$arrayCategory = stdclass_to_array($objCategory);カスタム分類の場合は、パラメーターに’taxonomy’ => ‘カスタム分類名’を入れなくてはいけなかったのですね。。
2行目で前回と同様に、SC SUGAR CLIP様のfunction stdclass_to_array()を利用して連想配列に変換しております。解決済みとさせて頂きます、有難う御座いました。
フォーラム: 使い方全般
返信が含まれるトピック: 特定のカテゴリ(もしくはカスタム投稿下)のコメント取得についてpopup様
返信ありがとうございます!
無事カスタム投稿毎のコメントを取得でき、解決致しました。フォーラム: 使い方全般
返信が含まれるトピック: 特定のカテゴリ(もしくはカスタム投稿下)のコメント取得について書き忘れてしまいました。
WPのバージョンは3.4.2です。フォーラム: テーマ
返信が含まれるトピック: wordpress.orgで配布されているテーマのライセンス・利用範囲についてしたがって、最終更新が古いものは、現在のルールでレビューを受けていないために、引用URLにあるような画像などを含まないものもあるだろうと思います。
公式ディレクトリ内の配布テーマでも、やはり利用する際に都度確認した方がいいみたいですね。
大変勉強になりました、有難う御座いました。フォーラム: 使い方全般
返信が含まれるトピック: 検索エンジンがブロックされたまま変更できませんh1965様
お世話になっております。
変更したファイルを元に戻した所、正常に動作するようになりました。admin-header.phpで間違って関係無い部分をいじってしまったのが原因のようです。
アドバイス頂きまして有難う御座いました。フォーラム: 使い方全般
返信が含まれるトピック: 検索エンジンがブロックされたまま変更できませんすみません、書き忘れてしまいました。。
バージョンはWP3.1です。管理画面>設定>プライバシーポリシーの中に、
【サイトの表示状態】
◎サイトの表示状態 サイトを検索エンジン (Google、Bing、Technorati など) やアーカイブも含め、だれにでも読めるようにする
◎検索エンジンはブロックするが通常の訪問者の閲覧は許可するという2つのラジオボタンの選択肢のみがあります。
宜しくお願い致します。フォーラム: 使い方全般
返信が含まれるトピック: 子カテゴリー(孫カテゴリーIDは除く)のIDを取得したい私の場合は上記コードを
$objCategory = get_categories(array(‘parent’=>1, ‘hide_empty’=>false))
とし、無事動作致しました。ue様、SC SUGAR CLIP様有難う御座いました。
フォーラム: 使い方全般
返信が含まれるトピック: 子カテゴリー(孫カテゴリーIDは除く)のIDを取得したいue様
ご回答ありがとうございます。
お教え頂いたもので、希望どおりの動作になりました!ただ、お教え頂いたものの出力結果は、stdClassオブジェクトというものらしく、
そのまま配列として扱う事が出来なかったので、配列に変換する処理が必要でした。超php初心者の私は「なんなんだこれは!@@;」としてしまいましたが、
同じ初心者の方向けに、解決方法を記録しておきます。【stdClassオブジェクトを連想配列に変換する – SC SUGAR CLIP様】
http://sugar-clip.jp/1857.html一部抜粋
次のような関数を用意しておくと便利です。
function stdclass_to_array($objDATA) {$arrayDATA = (array) $objDATA;
$arrayKeys = array_keys($arrayDATA);
$intCount = count($arrayKeys);for($i=0;$i<$intCount;$i++){
$arrayDATA[$arrayKeys[$i]] = (array) $arrayDATA[$arrayKeys[$i]];
}
return $arrayDATA;
}
さっそく上記関数を使ってみます。
$objCategory = get_categories();
$arrayCategory = stdclass_to_array($objCategory);
print_r($arrayCategory);フォーラム: 使い方全般
返信が含まれるトピック: 管理画面の設計に悩んでおりますjim912様
ご返信有難う御座います。
カスタム分類でのグルーピングでいけそうですね!ありがとうございます!商品順序の入れ替えは、管理者がPCスキルが0に近い方なので、ドラッグ&ドロップで実現できるプラグインを導入しようと思います。
(ここらへんは事前にテストしてみたら上手く動作しなかったので、またフォーラムでお世話になるかもしれません;)