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

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

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

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

PHP

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

Q&A

解決済

2回答

4048閲覧

wordpress 新着部分の記事のカテゴリ取得 表示

sssshin

総合スコア27

WordPress

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

PHP

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

0グッド

0クリップ

投稿2016/05/08 05:24

編集2016/05/08 06:30

質問お願いします。

php自体知識量少ないです。

php

1 <?php foreach($info->items as $item): ?> 2 <div class='wn-item'> 3 <div class='wn-date'> 4 <?php echo $item->date; ?> 5 </div> 6 <div class='wn-article'> 7 <?php if ( $item->newmark ): ?> 8 <span class='newmark'>NEW!</span> 9 <?php endif; ?> 10 <a href="<?php echo $item->url; ?>"><?php echo $item->title; ?> </a> 11<?php 12 13$category = get_the_category(); 14if ( $category[0] ) { 15echo '<a href="' . get_category_link( $category[0]->term_id ) . '">' . $category[0]->cat_name . '</a>'; 16} 17?> 18 </div> 19 </div> 20 <?php endforeach; ?> 21</div>

プラグイン改造で下のこの部分
$category = get_the_category();
から自分で足しましたが、その記事のカテゴリを取得表示したいのですがカテゴリが1種類になります。
記事からカテゴリIDを取得してそれを使わないといけないんだろうなと思っていろいろ試しているのですがうまくいきません。
ご教授よろしくお願いします。

追記:et_the_category();はそこしか書いてないですが、一応全文載せておきます。

php

1<div class='whatsnew'> 2 <div class='wn-head' 3 <?php echo "style='background-color: {$info->background_color}; color : {$info->font_color};'" ; ?>> 4 <?php if (!empty($info->postlist_url)): ?> 5 <div class='wn-postlist'> 6 <a href="<?php echo $info->postlist_url; ?>">一覧へ</a> 7 </div> 8 <?php endif; ?> 9 <div class='wn-title'> 10 <?php echo $info->title; ?> 11 </div> 12 </div> 13 <?php foreach($info->items as $item): ?> 14 <div class='wn-item'> 15 <div class='wn-date'> 16 <?php echo $item->date; ?> 17 </div> 18 <div class='wn-article'> 19 <?php if ( $item->newmark ): ?> 20 <span class='newmark'>NEW!</span> 21 <?php endif; ?> 22 <a href="<?php echo $item->url; ?>"><?php echo $item->title; ?> </a> 23<?php 24$category = get_the_category(); 25if ( $category[0] ) { 26echo '<a href="' . get_category_link( $category[0]->term_id ) . '">' . $category[0]->cat_name . '</a>'; 27} 28?> 29 </div> 30 </div> 31 <?php endforeach; ?> 32</div>

追記2
書くところ間違えてたかもしれないのでこちらにも同じ内容載せて起きます。

失礼しました。
https://wordpress.org/plugins/whats-new-genarator/
このプラグインを使用しています。 他にどの情報を載せたらいいのかわからないのでとりあえず大元を載せさせて頂きました。

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

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

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

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

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

takasima20

2016/05/08 05:30

get_the_category() はどんな感じになってますか?
kei344

2016/05/08 06:21

「プラグイン改造」は元がわからないと回答が難しいです。必要な情報を追記ください。
guest

回答2

0

ベストアンサー

まず、プラグインをカスタマイズすることはお勧めしません。なぜならアップデート(更新)が難しくなるからです。プラグインのアップデートの際に上書きされてしまうので、毎回コードを書き換えすることになり、メンテナンス性が落ちます。(ちなみに更新しないのはもってのほかです)
プラグインの中には一部の動作(表示)にフックをかける機構を設けていることもあり、通常はそこでカスタマイズするのですが、お使いのプラグインはそういう設計にはなっていません。

なので、どうしても同じ機能を実現したいのであれば get_posts() 等を使ってテンプレートにコードを記述されることをお勧めします。カテゴリの扱いについては takasima20さんの書かれた方法を参照され、組み合わせれば実現できると思います。

【WordPressで新着記事一覧にNEWアイコンをつける | MK2-BLOG~西宮のWEBデザイナー日記】
http://www.mk2-style.com/blog/archives/1092

【get_posts()テンプレートタグを使った情報の取得と表示方法 | memocarilog】
http://memocarilog.info/wordpress/templatetug/3393

投稿2016/05/08 08:17

kei344

総合スコア69407

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

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

sssshin

2016/05/08 08:53

丁寧にありがとうございます。 テンプレートタグ等あまりわからないので勉強します。 しかし今回のはあとこれだけで解決するのでもう少しそのままの回答を待ってみたいと思います。ありがとうございます。
sssshin

2016/05/09 12:16

解決しました。ありがとうございました!
kei344

2016/05/09 12:32

解決されたようでよかったです。もしよければ解決方法をお書きいただけませんか?同じ問題に悩む人がこのページに来られる可能性もありますので、できればよろしくお願いします。
guest

0

あー、get_the_category() って用意されてるやつなんスかね。
じゃあ例えばこんな感じで…

PHP

1<?php 2$category = get_the_category($item->ID); 3if ( !empty($category) ) { 4 foreach ($category as $c) { 5 echo '<a href="' . get_category_link( $c->term_id ) . '">' . $c->cat_name . '</a>'; 6 } 7} 8?>

投稿2016/05/08 06:06

編集2016/05/08 07:09
takasima20

総合スコア7458

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

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

sssshin

2016/05/08 06:12 編集

To: takasima20様 回答ありがとうございます。 試してみたところ変化がないです。表示されるカテゴリが全て同じになります。 どっかの記事のカテゴリ1つを読み込んでそれを全部に表示してるみたいです。 kei344 様 補足ありがとうございます。
takasima20

2016/05/08 07:10

To: kei344さん あざーす! To: sssshinさん あてずっぽですが、get_the_category() にパラメタ入れてみました。
sssshin

2016/05/08 07:40

いろいろ考えて頂きありがとうございます。どうしたらいいのかこれでずっとハマッてます。
takasima20

2016/05/08 08:23

To: kei344さん がーん! To: sssshinさん どうやらお役に立てそうにないです。(^_^;
sssshin

2016/05/08 09:21

いえありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問