質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

414閲覧

カテゴリー一覧でそのページのカテゴリースラッグを取得するにはどうすればよいでしょうか?

Samson818

総合スコア162

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/02/04 09:28

category.php内で以下の様に書いて一応はうまく動いているのですが、不格好なため修正したいです。

php

1<?php if (is_category('cat03-1')){//修正したい箇所ここから 2 $cats = 'cat03-1'; 3 }elseif (is_category('cat03-2')){ 4 $cats = 'cat03-2'; 5 }; 6echo '<p>'.$cats.'</p>';//確認のため 7//ここまで 8?> 9 10<?php 11$paged = get_query_var('page'); 12$my_query = new WP_Query(array( 13'post_type' => 'works', 14'category_name' => $cats, 15'posts_per_page' => -1, 16'orderby' => 'date', 17'post_status' => 'publish', 18'paged' => $paged 19)); 20?>

functions.php にカスタム投稿タイプを追加して、普通の投稿とカテゴリーやタグを共有しているせいか、
普通にcategory.phpを書いても何を表示してくれません。
(category.php の例:https://noumenon-th.net/programming/2016/06/19/wordpress06/)

functions.php には以下の様に記載しています。

php

1//カスタムポストタイプ 活動 を追加する 2add_action( ‘init’, ‘create_post_type03’ ); 3function create_post_type03() { 4register_post_type( 5‘works’, /* 投稿タイプのslug */ 6array( 7‘labels’ => array( 8‘name’ => __( ‘活動’ ), 9‘singular_name’ => __( ‘活動’ ) 10), 11‘taxonomies’ => array( ‘category’, ‘post_tag’ ), 12public=> true, 13‘menu_position’ => 5, 14‘has_archive’ => true, 15‘rewrite’ => array( ‘with_front’ => false ), 16‘supports’ => array(‘title’,’editor’,’thumbnail’,’custom-fields’,’excerpt’,’author’,’trackbacks’,’comments’,’revisions’,’page-attributes’) 17) 18); 19} 20//通常ポストとカスタム投稿タイプでタグを共有する 21register_taxonomy(‘post_tag’, array(‘post’,’works’), array( //ポイント 22‘hierarchical’ => true, 23‘update_count_callback’ => ‘_update_post_term_count’, 24‘label’ =>, 25‘singular_label’ =>, 26public=> true, 27‘show_ui’ => true 28) 29); 30function add_post_tag_archive( $wp_query ) { 31if ($wp_query->is_main_query() && $wp_query->is_tag()) { 32$wp_query->set( ‘post_type’, array(‘post’,’works’)); //ポイント 33} 34} 35add_action( ‘pre_get_posts’, ‘add_post_tag_archive’ , 10 , 1);

get_the_category();等試したのですがうまく行きませんでした。
上手な書き方を教えてください。
また、これはcategory.phpを使用するので正解でいいのでしょうか?

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

現在のページのカテゴリIDが格納されている$catというグローバル変数がありますので、
$category = get_category($cat);
でカテゴリオブジェクトを取得できます。slugであれば、以下のように取得できます。
$category->slug

functions.php には以下の様に記載しています。

こちらの関連性をもう少し説明していただくと良い回答ができるかもしれません。

投稿2019/02/04 23:58

tabuu

総合スコア2449

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Samson818

2019/02/05 01:07

回答ありがとうございます! 出来ました! 昨日、一生懸命やっていたのはやはり$catが抜けていたのだと思います。 「現在のページのカテゴリIDが格納されている$catというグローバル変数」 これを覚えなければいけませんね。 ありがとうござます! <?php $category = get_category($cat); $catslug = $category->slug; $my_query = new WP_Query(array( 'post_type' => 'works', 'category_name' =>$catslug, 'posts_per_page' => -1, 'orderby' => 'date', 'post_status' => 'publish', )); ?>
guest

0

何をしたいのかがわかりませんが「カテゴリアーカイブでそのカテゴリがどのカテゴリか判別したい」だとすれば、get_queried_object を利用すればよいです。

【get_queried_object – WordPress私的マニュアル】
https://elearn.jp/wpman/function/get_queried_object.html

投稿2019/02/04 10:05

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Samson818

2019/02/05 01:10

ありがとうございます! こちらの方法でも出来ました。 <?php $category = get_queried_object($cat); $catslug = $category->slug; $my_query = new WP_Query(array( 'post_type' => 'works', 'category_name' => $catslug, 'posts_per_page' => -1, 'orderby' => 'date', 'post_status' => 'publish', )); ?>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問