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

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

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

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

PHP

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

Q&A

解決済

2回答

643閲覧

WordPress Widget ドロップダウン時のタグのリンク先を修正したい

xu0124

総合スコア31

WordPress

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

PHP

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

0グッド

0クリップ

投稿2020/01/12 13:29

編集2020/01/13 10:43

function.phpに追記して
WordPress標準のカテゴリーウィジェットを拡張してカスタムタクソノミーも選択できるようにしたのですが

タグ(post_tag)設定でドロップダウン表示にすると

https://2inc.org/?cat=172

という感じ担ってエラーになります。
※catはガテゴリー
※172はタグのID

本来であればタグの場合は

https://2inc.org/?tag=タグ名

というURLになるかと思います。

今の所どのようにコードを修正したらタグのリンクが正常になるのかわかりません。
もしわかる方がいましたらご教授願います。

<追記>
海外サイトも同様の質問があったので、参考にしてますがコード置き換えても現在のバージョンだとウィジェットとして使えなくなってそうです。
https://stackoverflow.com/questions/36654933/wordpress-category-widget-drop-down-slugs

コード引用先

function override_widget_categories() { class WP_Widget_Categories_Taxonomy extends WP_Widget_Categories { private $taxonomy = 'category'; public function widget( $args, $instance ) { if ( !empty( $instance['taxonomy'] ) ) { $this->taxonomy = $instance['taxonomy']; } add_filter( 'widget_categories_dropdown_args', array( $this, 'add_taxonomy_dropdown_args' ), 10 ); add_filter( 'widget_categories_args', array( $this, 'add_taxonomy_dropdown_args' ), 10 ); parent::widget( $args, $instance ); } public function update( $new_instance, $old_instance ) { $instance = parent::update( $new_instance, $old_instance ); $taxonomies = $this->get_taxonomies(); $instance['taxonomy'] = 'category'; if ( in_array( $new_instance['taxonomy'], $taxonomies ) ) { $instance['taxonomy'] = $new_instance['taxonomy']; } return $instance; } public function form( $instance ) { parent::form( $instance ); $taxonomy = 'category'; if ( !empty( $instance['taxonomy'] ) ) { $taxonomy = $instance['taxonomy']; } $taxonomies = $this->get_taxonomies(); ?> <p> <label for="<?php echo $this->get_field_id( 'taxonomy' ); ?>"><?php _e( 'Taxonomy:' ); ?></label><br /> <select id="<?php echo $this->get_field_id( 'taxonomy' ); ?>" name="<?php echo $this->get_field_name( 'taxonomy' ); ?>"> <?php foreach ( $taxonomies as $value ) : ?> <option value="<?php echo esc_attr( $value ); ?>"<?php selected( $taxonomy, $value ); ?>><?php echo esc_attr( $value ); ?></option> <?php endforeach; ?> </select> </p> <?php } public function add_taxonomy_dropdown_args( $cat_args ) { $cat_args['taxonomy'] = $this->taxonomy; return $cat_args; } private function get_taxonomies() { $taxonomies = get_taxonomies( array( 'public' => true, ) ); return $taxonomies; } } unregister_widget( 'WP_Widget_Categories' ); register_widget( 'WP_Widget_Categories_Taxonomy' ); } add_action( 'widgets_init', 'override_widget_categories' );

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

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

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

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

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

guest

回答2

0

ベストアンサー

無理にカスタマイズしなくてもプラグインを利用するのが得策でしょう。
Taxonomy Dropdown Widget
古い記事を参考にするよりキチンとメンテされているプラグインを有難く使わせてもらってくださいな。

投稿2020/01/19 06:37

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ここでは?

PHP

1// private $taxonomy = 'category'; 2 private $taxonomy = 'post_tag';

投稿2020/01/12 16:51

kei344

総合スコア69400

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

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

xu0124

2020/01/13 10:32 編集

WPが壊れました...。 >サイトに重大なエラーがありました。と表示されなくなりました。
xu0124

2020/01/13 10:40

Teratailのガイドラインを見る限り、推奨はしていませんが禁止はされていません。 フォーラムが反応なさそうなので投稿しました。 上記のコードに変更した際にWPにアクセスすると画面が真っ白になっているので、そう表現しました。
退会済みユーザー

退会済みユーザー

2020/01/14 09:02

反応がないって、質問してからせいぜい1日か2日程度ですよね。 法律違反じゃなければ何してもいい? マルチポスト禁止と書いてあるならマルチポストしない? 問題解決のために時間を割いて考えてくれている人がいたとしたらどう思いますかね。 どちらのサイトも回答は義務ではありません。ただのボランティアです。 その気持ちを蔑ろにするような行為はどうかと思いますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問