#WordPress で get_term_link 関数のパラメーターを設定するにはどうすればよいですか?
WordPressのget_term_link関数のパラメータ設定問題
おすすめ:「wordpressチュートリアル」
最近誰かを助けました 友人が企業テーマを作成しており、その製品に product という特別な投稿タイプを設定する必要があります。管理の便宜のため、製品に特別なカテゴリ タイプとタグ タイプを設定しました。カテゴリ タイプは product_cat (WordPress 独自のカテゴリ)タイプはカテゴリです)。
get_term_link を使用する理由:
新しいタイプのカテゴリは使用できません カテゴリのリンク アドレスを出力するには、次の操作を行う必要があります。 get_term_link() 関数を使用します。この関数の使用法は次のとおりです:
<?php get_term_link( $term, $taxonomy ); ?>
具体的なリファレンスについては、WordPress Codex を参照してください: http://codex.wordpress.org/Function_Reference/get_term_link
質問:
例:
- カスタム カテゴリ ID の変数は $term です。$term は背景の設定に応じて変更されます。説明の便宜上、背景はパラメータは $custom_term = 8
- カスタム カテゴリ ID $term のカテゴリ リンク アドレスを取得したいのですが、公式の指示によると、次のようになります:
<?php $term = $custom_term; echo get_term_link( $term, 'product_cat'); ?>
正しいようです。しかし、ここで問題が発生します。エラーが返されます:
キャッチ可能な致命的なエラー: クラス WP_Error のオブジェクトを文字列に変換できませんでした。そうです、echo $term を直接使用すると、出力結果は確かに 8 で、憂鬱です...
しかし、これを直接実行すると、
<?php echo get_term_link( 8, 'product_cat'); ?>
再び正常に動作します。
解決策:
WordPress Codex で遊んでいたとき、外国人の友人もこの問題に遭遇し、自分で解決したのを偶然見ました。彼はひらめきました... Portal 》
それは変数の型の問題であることがわかりました。この get_term_link 関数は、他の一般的に使用される WordPress 関数とは異なります。変数の型をそれ自体で変換することはありません。正しく動作する前に、文字クラスを整数に変換する必要があります。素晴らしい関数です Orz!
以下は正常に動作します:
(ソファに座っているボロのメモ: intval($term, 10) の方が良いですが、そうでない場合、$term の値が大きすぎるとエラーが発生します。システム変換の問題、または (int)$term) を使用してください)
<?php $term = $custom_term; echo get_term_link( intval($term), 'product_cat'); ?>
したがって、今後このような憂鬱な関数に遭遇した場合は、それが変数のデータ型に問題があるかどうかを検討する必要があります。
寝返り遊び(終了)。
以上がWordPressで関数get_term_linkのパラメータを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。