任意の固定ページにカテゴリーを一覧(全部)表示するには

Simplicityの特徴 › フォーラム › テーマファイルのカスタマイズに関する質問など › 任意の固定ページにカテゴリーを一覧(全部)表示するには

  • このトピックには10件の返信、1人の参加者があり、最後にインパラにより10年、 5ヶ月前に更新されました。
10件の返信スレッドを表示中
  • 投稿者
    投稿
    • #38746
      インパラ
      ゲスト

      ちょっとした内容でもわけわからなくなってきました。

      質問です。

      任意の固定ページにカテゴリーを一覧(全部)表示するにはどうしたらいいのでしょうか?

      例えば、グローバルナビで「カテゴリー一覧」という項目を作ります。そのページにいくとカテゴリーが並ん

      でいるような感じです。同じようにタグ一覧も作りたいです。

      もう一つ、フロントページは最新の投稿が一覧で表示するようにしていますがこのページ自体を少しカスタム

      したいのですが可能ですか?

      今回もよろしくお願い致します。

    • #38761
      Hidekichi
      ゲスト

      カテゴリーならサイドバー・フッター、その他諸々にウィジェットで全部出せますが、固定ページでカテゴリーをだす目的はどういう感じでしょうか?

      グローバルナビで作るなら、階層化してそれぞれのカテゴリーをサブメニューにするのはダメな感じですかね?

      タグ一覧はタグクラウドもありますし…

      どうしてもという場合は、ショートコードで一覧が出せるような仕組みにするのが簡単でしょうか。

    • #38765
      まさひこ
      ゲスト

      PSAUTOSITEMAPで「カテゴリーと投稿の表示」を「投稿を分割」に設定すれば、ご希望のページを作成できるかと思います。Simplicityまったく関係なくなってますが。

      http://wordpress.siyouyo.com/plugin/2850/

      フロントページについては、テーマのカスタマイザーの「レイアウト(全体・リスト)」で設定できる内容では駄目なのでしょうか。

    • #38846
      インパラ
      ゲスト

      返信ありがとうございます。

      「固定ページでカテゴリーをだす目的は」→理由は単にカテゴリー数が多い(20~25くらい)ので表示できたらな

      と思いまして‥

      「グローバルナビで作るなら、階層化してそれぞれのカテゴリーをサブメニュー」も考えたのですがやはり数が多

      すぎるのでなんか変な感じかなと。

      ページにリストタグで2、3列に表示するにはどんな風にしたらよいのでしょうか?

      あと、タグに投稿数を付けたりするのは可能ですか?←これもページにリストタグで2、3列に表示‥

      出来たらと思いまして。

      良かったらよい方法をお願いします。

    • #38855
      Hidekichi
      ゲスト
      function test($attr) {
      	extract(shortcode_atts(array(
              'type' => 'cat'
          ), $attr));
            
          /*
          terms_return_value
      	    term_id			int		ID
      		name			string		名前
      		slug			string		スラッグ
      		term_group		int		グループID
      		term_taxonomy_id	int		タクソノミーID
      		taxonomy		string		タクソノミー名
      		description		string		説明
      		parent			int		親タクソノミーのID。親タクソノミーがない場合は0となる
      		count			int		投稿数
      	*/
      	
      	$out = "";
      	$out .= $type;
      	$out .= "<ul>";
      	
      	switch($type){
          	case "cat":
          		$cats = get_terms( 'category', 'get=all' );
          		foreach($cats as $cat){
      				$out .= "<li><a href='". get_category_link( $cat->term_id ) ."'>". $cat->name ."</a></li>";
      			}
          		break;
          	case "tag":
          		$tags = get_tags();
          		foreach($tags as $tag){
      				$out .= "<li><a href='". get_tag_link( $tag->term_id ) ."'>". $tag->name ."</a></li>";
      			}
          		break;
          	default:
          		$dat = get_terms( 'category', 'get=all' );
          		foreach($dat as $dt){
      				$out .= "<li><a href='". get_category_link( $dt->term_id ) ."'>". $dt->name ."</a></li>";
      			}
          }
      	
      	$out .= "</ul>";
      	
      	return $out;
      }
      
      add_shortcode('getterm', 'test');

      例えばこういうのを子テーマfunctions.phpに追記します。
      で、固定ページで、

      [getterm type="cat"]
      とすると、カテゴリー一覧がulのリストで出力されます。

      任意のclassとか付けたい場合は、中に書いても良いんだろうと思いますが、

      <div class="test">
      [getterm type="cat"]
      </div>

      とかでも動作します。この場合は、

      .test ul {
        display: flex;
        flex-flow: row wrap;
        justify-content: space-between;
        border: 1px solid #ddd;
      }
      
      .test ul li {
        list-style: none;
        margin: 5px;
      }

      などでスタイルできます。

      [getterm type="tag"]

      とすればタグも出せます。

      [getterm]
      だけの場合、あるいは、type等に不備がある場合デフォルトでカテゴリーが出るようになってます。

      カウントについては、カテゴリもタグもどちらもカウントがありますから、
      $cat->cout
      $tag->count
      で数値が取得できるので、foreachの中のliの部分で、[リンク]カテゴリ・タグ名[/リンク](ここ)などとしてカウントを入れれば表示できます。カテゴリーの取得の方はどういった値が拾えるのかをコメントで書いてありますのでそれらは他と同じように、$cat->何々 で拾えます。タグの方は、get_tags | wordpress私的マニュアルの返り値等を参考にしてみて下さい。

      get_terms( ‘category’, ‘get=all’ );
      get_tags();

      等は予めどういった内容を取得するかをwordpress私的マニュアルの解説ページの$argsの部分で指定することもできます。つまり降順・昇順であったり、取得したくないタクソノミーのIDであったり。これらの操作自体は特に解説しませんが、wordpressの仕様に準拠しています。

      後は、まぁ適当にイジってみて下さい(笑)

      わいひらさんの修正があるまでは、クォートやらがコード化していると思いますが、それまでしばしお待ちください。

    • #38857
      インパラ
      ゲスト

      返信ありがとうございます。

      初心者なので説明を理解するのに時間がかかっております‥

      まず子テーマfunctions.phpに追記して固定ページに[getterm type=”cat”]をすると

      Parse error: syntax error, unexpected ‘)’ in C:\pleiades\xampp\htdocs\wordpress\wp-content\themes\simplicity2-child\functions.php on line 30

      このようなエラー文がでます。[getterm type=”cat”]は固定ページの編集画面でいいのですか?

      なにか勘違いしてたらすいません。

    • #38861
      Hidekichi
      ゲスト

      サンプル: functions.phpの関数部分 | jsFiddle

      おそらくパースエラーとシンタックスエラーなので、コピペなどして修正しきれずコード化したままになってる箇所があってエラーになってるかと思います。
      ※ サンプルのjsFiddleでは実行しても何も起こりません。コード表示だけのものです。
      ※ サンプルはjavascript欄に書いてありますが説明通り子テーマfunctions.phpに追記です

      ショートコードなので固定ページもそれ以外にも使えます。ウィジェットで行けるかは試してません。ウィジェットはムリかも。けどなにかしらやり方はあったと思います。

    • #38907
      インパラ
      ゲスト

      出来ました!

      時間はかかりましたが‥

      エラーが出てたのも言われた通りでした。

      カウント数も無事表示できました。

      それとショートコードで表示したとき「tag」「cat」←これはどこをさわればいいのでしょうか?

      無表示、もしくは変更するとき‥分かりませんでした。

    • #38909
      Hidekichi
      ゲスト

      > 「tag」「cat」←これはどこをさわればいいのでしょうか?

      $out .= $type;

      部分です。一応確認用に入れましたが、例えば

      ($type == "tag") ? "タグ" : "カテゴリ";
      $out .= "[h2]" . $type . "[/h2];

      ※ []は半角〈〉です。クォートはシングルなりダブルなりに変換して下さい

      などとしたら、見出しができる感じです。見出し部分は、例えば、

      必要なければ、$out .= $type;を削除して、

      [h2]タグ一覧[/h2]
      [getterm type="tag"]

      こんなふうにしても良いですね。

    • #38910
      Hidekichi
      ゲスト

      あ、最後閉じが抜けてたかな。
      $out .= “[h2]” . $type . “[/h2]”;

      こんな感じです。

    • #38915
      インパラ
      ゲスト

      無事できました!

      ありがとうございます

10件の返信スレッドを表示中
  • トピック「任意の固定ページにカテゴリーを一覧(全部)表示するには」には新しい返信をつけることはできません。
スポンサーリンク
アドセンス(大)
アドセンス(大)