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

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

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

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

PHP

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

Q&A

解決済

1回答

517閲覧

カスタム投稿名+カテゴリーを取得させたい

rirri09

総合スコア8

WordPress

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

PHP

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

0グッド

0クリップ

投稿2018/07/06 16:11

カスタム投稿を作成し、タクソノミーは作成せずに
WP標準のカテゴリーを使用しています。

【現在起きている問題】

カスタム投稿で投稿した記事のカテゴリー名をクリックすると
(タイトルの上や横にあるような部分です。)
http://myurl/category/カテゴリー名
こういうページにリンクされており、このままではアーカイブが表示されません。
上記のページは通常の投稿では問題なく表示されます。

ちなみにカスタム投稿のアーカイブページ自体は
http://myurl/カスタム投稿名/category/カテゴリー名
こちらで打ち込むと問題なく表示されます。

【実現させたいこと】

ページ上にあるカテゴリー名のリンクをクリックすると
http://myurl/カスタム投稿名/category/カテゴリー名
というアーカイブページに飛ばせるようにしたい。

<div class="post-meta clearfix"> <?php if ( bloomy_theme_mod( 'post_cats' ) ) { ?> <span class="post-cats"> <?php the_category(', '); ?> </span><?php } if ( bloomy_theme_mod( 'post_date' ) ) { ?> <span class="post-date"> <time itemprop="datePublished" datetime="<?php echo esc_attr( get_the_date( 'c' ) ); ?>" title="<?php echo esc_html( get_the_date() ); ?>"> <?php the_time('Y年n月j日(l)'); ?> </time> </span><?php } if ( bloomy_theme_mod( 'post_comments' ) ) { ?> <span class="post-comments"> <?php comments_popup_link( esc_html__( 'Leave a Comment', 'bloomy' ), esc_html__( '1 Comment', 'bloomy' ), esc_html__( '% Comments', 'bloomy' ), 'comments-link', esc_html__( 'コメントなし', 'bloomy' )); ?> </span><?php } edit_post_link( esc_html__( 'Edit', 'bloomy' ), '<span class="edit-link">', '</span>' ); ?> </div><!--.post-meta-->

おそらくpost-meta.php

<?php the_category(', '); ?>

これがカテゴリーのみになっているからだと思うのですが、
ここをカスタム投稿名+カテゴリーを取得するコードに変更したいのですが
可能でしょうか?

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

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

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

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

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

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

kei344

2018/07/07 05:42

「このままではアーカイブが表示されません」とは、記事が表示されないだけでしょうか。それとも404ページになるのでしょうか。
rirri09

2018/07/07 07:07

ありがとうございます。404ではなく探しているものがみつかりません、と出てしまいます。
guest

回答1

0

ベストアンサー

書き換えるだけなら
例えばこういう感じですかね。(未検証)

PHP

1add_filter( 'term_link', 'my_term_link', 10, 3 ); 2function my_term_link( $termlink, $term, $taxonomy ) { 3 if ( !is_admin() && $taxonomy === 'category' ) { 4 $termlink = str_replace( '/category/', '/カスタム投稿名/category/', $termlink ); 5 } 6 return $termlink; 7}

このままではアーカイブが表示されません。

通常のカテゴリページでカスタム投稿を表示するにはpre_get_postsでpost_typeの指定を変える必要が有ります。

【【wordpress】pre_get_postsを使ってみませんか?】
https://qiita.com/ruka/items/e14280d34eddf49efad1#pre_get_posts%E3%81%AE%E3%81%94%E6%8F%90%E6%A1%88

【WP_Queryの使い方をPHPコードにまとめた便利なコード・スニペット】
http://notnil-creative.com/blog/archives/1288

投稿2018/07/07 07:49

kei344

総合スコア69407

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

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

rirri09

2018/07/07 12:50 編集

ありがとうございます! こちらをfunctions.phpに追記したところ、バッチリ解決できました! と、思ったのですが 今度は通常のポストタイプに書き換えたカスタム投稿名が入ってしまいまして…。 カスタム投稿部分のカテゴリーのリンクはばっちり思い通りになりました。 通常の場合=http://myurl/category/カテゴリー名 カスタム投稿の場合=http://myurl/カスタム投稿名/category/カテゴリー名 こんな感じで分岐するやり方があったら是非教えて頂きたいです。 重ね重ねで申し訳ありません、よろしくお願いいたします!
kei344

2018/07/07 13:30

カスタムタクソノミーを使うのが早いと思いますよ。
rirri09

2018/07/07 16:51

ありがとうございます! すごく見落としてました(笑) やりたかったこと実現しました! 解決済みとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問