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

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

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

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

PHP

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

Q&A

解決済

2回答

3474閲覧

WordPressのアーカイブページURLとタイトルについて

yura53

総合スコア8

WordPress

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

PHP

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

0グッド

0クリップ

投稿2018/01/24 04:43

WordPressでアーカイブページを作成している際にURLとタイトルの表示について詰まっています。

タクソノミー cathoge
ターム1つめ foo
ターム2つめ bar
ターム3つめ baz

タームfooもしくはbarに属している記事の一覧を表示させたい場合は、一般的には新たにテンプレートの作成が必要なのでしょうか?
※1記事に複数のタームではなく、fooのタームの記事とbarのタームの記事の両方が混在するアーカイブページを作成しています。
表示だけなら

<a href="<?php echo home_url(); ?>/cathoge/foo,bar/">fooとbarの記事一覧</a>

上記でリンクは作成でき、テンプレートもtaxonomy.phpで表示できたのですが、ページのタイトルとパンくずがfooだけになってしまっている状態です。
ひとまずタイトルだけでもと思い、下記をタイトル部分に差し込んでみたのですが、結果はやはりfooだけの出力でした。

<?php the_terms( $post->ID, 'cathoge', 'カテゴリー: ', ' & ' ); ?>

まず、2つのカテゴリの記事を合算したアーカイブページへのリンクの書き方は正しいですか?
その場合、タイトルの表示を「foo & bar の記事一覧」と出力する方法についても教えていただけると嬉しいです。

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

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

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

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

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

guest

回答2

0

こんな感じで良いのでは?

PHP

1$terms = get_query_var('cathoge'); 2$page_title = str_replace(',', ' & ', $terms); 3echo $page_title;

【参考】関数リファレンス/get query var - WordPress Codex 日本語版

投稿2018/01/24 06:26

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

2つのカテゴリの記事を合算したアーカイブページへのリンクの書き方は正しいですか?

うーん。自分は知らないです。

一つのtaxonomy.phpで済まそうとするならば、

taxonomy.phpで、get_header();の前あたりに

PHP

1$terms = get_query_var('cathoge'); 2if(FALSE !== strpos($terms, ',')): 3 4 function custom_tax( $query ) 5 { 6 $query->set('taxonomy', 'cathoge'); 7 $query->set('field', 'slug'); 8 $query->set('terms', explode(',', $terms)); 9 10 } 11 add_action('pre_get_posts', 'custom_tax'); 12 13endif;

ってやれば、
/cathoge/(termslugを,でつなげた形)/
のurlで、希望通りの表示ができるかと思います。

タイトルのところは、例えば、

PHP

1<?php 2$title = ''; 3$terms_arr = explode(',', $terms); 4$separator = '&'; 5foreach($terms_arr as $term): 6 $title .= get_term_by('slug', $term, 'theme')->name . $separator; 7endforeach; 8 9echo trim($title, $separator);

にしてみたらどうでしょうか?

パンくずナビについては、どの様に作られているのかわからないので、カスタマイズについては何とも言えません。

投稿2018/01/24 06:09

yukikp

総合スコア797

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問