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

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

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

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

PHP

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

Q&A

1回答

2412閲覧

特定カテゴリを除外する方法について

Masaya.Matuoka

総合スコア11

WordPress

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

PHP

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

1グッド

0クリップ

投稿2016/04/12 14:29

編集2016/04/13 11:01

下記ソースをsidebar.phpに記載しており
リンク1を踏んだ時のみ特定の親子カテゴリを除外した結果を表示しようとしています。

リンク1を表示した時のみ、
別テンプレートを呼び出すようにすればいいとも考えたのですが、
処理が難しく実現出来ていません。

極力シンプルなやり方で実現したいのですが
どのような処理をすれば実現出来るのでしょうか。

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

php

1<div> 2 <a href="<?php echo home_url('hoge1'); ?>">リンク1</a> 3 <a href="<?php echo home_url('hoge2'); ?>">リンク2</a> 4 <a href="<?php echo home_url('hoge3'); ?>">リンク3</a> 5 <a href="<?php echo home_url('hoge4'); ?>">リンク4</a> 6</div>
dsk👍を押しています

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

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

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

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

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

guest

回答1

0

2つ方法を思いつきました。
まずは検索してしまう方法。多分 search.php が表示されると思います。(検索キー「s=」がないため、もしかしたら category.php の可能性も)

<a href="<?php echo home_url( '/' ); ?>?cat=カテゴリID①,カテゴリID②">リンク1</a>

【複数カテゴリでor検索】
http://doshirouto.wp.xdomain.jp/web/wordpress/wp-category/620


もうひとつは、固定ページを作成してその中で WP_Query を使って絞り込んだものを表示するか、pre_get_posts を使ってそのページのクエリだけ差し替えてしまう方法。
pre_get_posts を使ってクエリの差し替えがうまくできればページング(ページわけ)もできると思います。
専用のページテンプレートを用意したり、記事呼び出しを自分で書き直すなど、手間が多いとは思います。

【[WP]WordPressのページファイル(page.php)で個別にテンプレート名を付ける方法】
http://www.webantena.net/wordpress/page-template-name/

【Wordpressで独自のページテンプレートを作成して固定ページに適用するための手順】
http://www.virment.com/wordpress-customtemplate/

【WordPressでホームやアーカイブ毎に表示条件を変える(is_main_query と pre_get_posts フック) | Gatespace's Blog】
http://gatespace.jp/2012/09/10/modify_main_queries/

【[Wordpress]pre_get_postsを使いこなす!pre_get_posts使い方まとめ | EMiAC-Works】
http://emiac-works.com/coding/pre-get-posts-code-snipet/

投稿2016/04/13 16:43

kei344

総合スコア69407

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

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

Masaya.Matuoka

2016/04/22 13:03 編集

お返事いただきありがとうございます。 search.phpを使う方法は出来たのですが、pre_get_postsは処理が難しく うまく組み込めませんでした。 結局、表示するタクソノミーページに post_is_in_descendant_categoryを使って 必要なカテゴリのみ表示させようとしたのですが、複数カテゴリの表示ができません。
kei344

2016/04/22 13:32

タクソノミーページは複数カテゴリに対応することは難しいです。特にページングを含めてやるのであれば pre_get_posts を使うことになります。 > search.phpを使う方法は出来たのですが、pre_get_postsは処理が難しくうまく組み込めませんでした。 「search.phpを使う方法」では pre_get_posts の設定は要りませんので、「search.phpを使う方法」を使われてはいかがでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問