Toshimichi Mimoto
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: カテゴリの新規追加で起きたトラブルについてパンくずリストの実装はどんなコードですか?
フォーラム: 使い方全般
返信が含まれるトピック: 投稿者毎に異なるコンテンツを表示したい。ですね ^^;
@gblsm さん、ありがとうございます!フォーラム: 使い方全般
返信が含まれるトピック: 特定の親カテゴリーに特定の子カテゴリーを表示したいカテゴリー「A」と「B」は親カテゴリーですよね。
すると、$parent_id = $cat_current->category_parent;
ここでは
$parent_id
は0
になり$child_category = get_term_children($parent_id, 'category');
ここは子カテゴリーが取得できず、
$child_category
には空の配列が代入されます。
つまり以降のforeach
は全く機能していないことになりますね。
そうなると$categories_num
は未定義の変数となり、query_posts
の引数はcat=&child_of=0
となりほとんど何もしていないような状態になるかと思われます。子カテゴリーa,b,cでの表示はまた別の対応が必要だと思いますが、カテゴリーA,Bでの表示だけを考えると、
<?php $cat_current = get_queried_object(); $parent_id = $cat_current->term_id; // ←ここ $child_category = get_term_children($parent_id, 'category'); foreach ($child_category as $key => $value) { $child_category_name = get_category($value)->slug; if($child_category_name != 'template' && $child_category_name != 'example') { $categories_num = $value; // 微修正 break; // 微修正 } } query_posts('cat=' . $categories_num . '&child_of=' . $parent_id);
でうまくいくのでは?(未検証です)
フォーラム: 使い方全般
返信が含まれるトピック: 特定の親カテゴリーに特定の子カテゴリーを表示したいget_the_category()
関数は、特定の投稿のカテゴリーを取得します。
頂戴したコードですと、おそらく一番目の投稿が属するカテゴリーを取得することになるでしょう。(通常ループ内で使用しますね)
テンプレートタグ/get the category – WordPress Codex 日本語版現在アーカイブ表示されているカテゴリーを取得するには
get_queried_object()
を使ったほうがいいと思います。<?php // $cat = get_the_category(); // $cat_current = $cat[0]; $cat_current = get_queried_object();
関数リファレンス/get queried object – WordPress Codex 日本語版
参考: WordPress : get_queried_object()の返り値のまとめ | notnil creation weblog—
あと色々ありそうですが、実装したい内容がまだよく理解できていないのでまた後で見なおしてみます。
フォーラム: 使い方全般
返信が含まれるトピック: 投稿者毎に異なるコンテンツを表示したい。例えば、
Aユーザー(ID=userA)の投稿ページには「よろしくお願いします」
Bユーザー(ID=userB)の投稿ページには「こんにちは」
Cユーザー(ID=userC)の投稿ページには「ありがとうございました」と表示を切り替えるにはどのようにすれば良いのでしょうか。
<?php /** * sidebar.php */ if ( is_single() ) { $user_id = get_the_author_meta( 'ID' ); $user_data = get_userdata( $user_id ); $user_login = $user_data->user_login; if ( $user_login === 'userA' ) { echo 'よろしくお願いします'; } else if ( $user_login === 'userB' ) { echo 'こんにちは'; } else if ( $user_login === 'userC' ) { echo 'ありがとうございました'; } }
get_the_author_id()
関数は非推奨になっているようなのでget_the_author_meta( 'ID' )
を使いました。フォーラム: 使い方全般
返信が含まれるトピック: 投稿者毎に異なるコンテンツを表示したい。取得した後はどのように条件指定をすれば良いのでしょうか。
さすがにそれはどういう条件で表示を変えるか教えていただかないと無理なのでは…?
フォーラム: 使い方全般
返信が含まれるトピック: 階層化しているタグページにパンくずを表示したい関数リファレンス/get ancestors – WordPress Codex 日本語版
上記関数を使えば得られた配列を元に実装できるのではないでしょうか。
タグを階層化している、という汎用性のない状況なのでこの程度で。フォーラム: 使い方全般
返信が含まれるトピック: 階層化しているタグページにパンくずを表示したいタグに階層構造はなく、親子関係は存在しないはずなのですが…?
https://github.com/WordPress/WordPress/blob/4.3-branch/wp-includes/taxonomy.php#L69
なので、
$oyaterm = array_pop(get_the_terms($post->ID, 'post_tag')); $term_p = $current_tag->parent;
(
$current_tag
が$oyaterm
の誤りであるとするなら)$term_p
は、おそらく常に0
になります。—
以下、PHP構文上のお話ですが、
if ( ! $term_p == 0 ){
$term_p
が0
でない場合、ということを検証したいのであれば、if ( $term_p != 0 ){
が普通かな、と思いました。
フォーラム: 使い方全般
返信が含まれるトピック: 自作ショートコードへの関連付けについて広告管理の管理ページはちゃんと作成できているようです。
$ad_url = get_option( 'ad_url' );
で管理画面で入力した内容を取得できるので、あとはそれをどう表示するか
showads
関数の中で組み立てるだけだと思いますよ。// 例 function showads() { $ad_url = get_option( 'ad_url' ); $html = '<a href="' . esc_url( $ad_url ) . '">広告</a>'; return $html; }
広告コードがどういうものなのか、入力されるものはURLなのか、それとも一意の文字列なのか、さらに表示したいものがどういう形式なのか、といった事がわからないので、また、WordPress の質問とも離れることなので、あとはご自分で工夫していただくべきことだと思います。
助言できることしては、
register_setting( 'ad-settings-group', 'ad_url' );
について。
register_setting
関数は第三引数で、入力された値の無蓋化をする関数を指定できます。
関数リファレンス/register setting – WordPress Codex 日本語版例えば、保存されるべき値がURLである場合は、
register_setting( 'ad-settings-group', 'ad_url', 'esc_url_raw' );
とすれば、安全なURL文字列として保存されます。(文字列がURLとしての安全ということであって、リンク先が安全なページ、ということではありません。)
参考: データ検証 – WordPress Codex 日本語版フォーラム: 使い方全般
返信が含まれるトピック: アクションフックwp_enqueue_style('');の表記はNGでしょうか。wp_enqueue_style
の第一引数は有効なスタイルシートのハンドルでないと意味がありません。wp_enqueue_style('');
上記コードは、読む込むスタイルシートがないのであれば記述する必要はないでしょう。
また、第二引数はスタイルシートのパスではなくURLです。さらに子テーマということなので、
// wp_register_style('style', get_bloginfo('template_directory').'/../prose/style.css'); wp_register_style('style', get_stylesheet_directory_uri() . '/style.css');
が適当です。
関数リファレンス/wp enqueue style – WordPress Codex 日本語版#パラメータ
あと、
add_stylesheet
関数のフック先が違います。wp_register_style
関数を実行するので// add_action('wp_print_styles', 'add_stylesheet'); add_action('wp_enqueue_scripts', 'add_stylesheet');
としてください。
Function Reference/wp register style « WordPress Codex#Usage
(今見たら、日本語Codexのwp_register_style
はwp_enqueue_style
の内容になっていますね… >> 関数リファレンス/wp register style – WordPress Codex 日本語版 )なお、有料テーマについては検証ができません。販売元への問合せをお願いすることになりますのでそちらもあらかじめご留意ください。
フォーラム: プラグイン
返信が含まれるトピック: カスタムフィールドテンプレートで画像を選択まったくお勧めできない、かつ検証していないので駄目かもしれませんが、思い切って
[Favorite Fruits] type = radio value = <img src="/fruits/apple.gif"> # <img src="/fruits/orange.gif"> # <img src="/fruits/banana.gif"> # <img src="/fruits/grape.gif">
として、ドメイン直下に fruits ディレクトリーを作り、その中に画像を格納すれば実現できるかもしれませんね…
実現できたとしても、逆に表示するときに工夫をしなければいけないので最初に言ったようにお勧めできません。
フォーラム: プラグイン
返信が含まれるトピック: カスタムフィールドテンプレートで画像を選択Custom Field Template プラグインを使用した場合、私で回答できる範囲としては難しいです。
というか、やりたくないです…スタイルシートで無理やり実現しようとすると、
—
まず前提。
テンプレートは下記とします。また、投稿タイプは post(投稿)とします。[Favorite Fruits] type = radio value = apple # orange # banana # grape
functions.php に記述する内容は、
add_action( 'admin_print_styles', 'cft_favorite_fruits_radio_style' ); function cft_favorite_fruits_radio_style() { global $pagenow, $post_type; if ( ! in_array( $pagenow, array( 'post.php', 'post-new.php' ), true ) ) { return; // 投稿、または新規投稿画面でなければここで終わり } if ( $post_type !== 'post' ) { // 投稿以外の場合は適宜変更してください return; // 対象の投稿タイプでなければここで終わり } echo <<<EOF <style> /* ここにスタイルを記述していきます */ </style> EOF; }
といった感じでしょうか。
スタイルの記述についてはネット上にリソースはいっぱいあると思うのでお調べください。前提のテンプレートの場合、ラジオボタンを囲む
label
要素は、label[for^="favorite_fruits_"] {} /* 全ての label */ label[for="favorite_fruits_apple_0_0"] {} /* アップル */
といったセレクタで指定できました。(実際は、ブラウザの開発ツールなどで確認してください。)
—
あくまで私が回答できる範囲ですが、これなら、
add_meta_box
関数を使って一から実装したほうが楽だな、と思いました。
たぶんラジオボタンのスタイルシートをあれこれするのを調べるのと変わらない程の労力で実装できるようになりそうな気がします。
一度挑戦してみてはいかがでしょうか。フォーラム: プラグイン
返信が含まれるトピック: カスタムフィールドテンプレートで画像を選択Custom Field Template のソースを覗いてみましたが、フォームのカスタマイズに関してはなかなか手強そうなだな…という印象を受けました。
現状、なにか試みられたことはありますか?
ご質問の要件ですと、正直、プラグインを使わずに自分で実装した方が楽そうだな、と…
フォーラム: プラグイン
返信が含まれるトピック: カスタムフィールドテンプレートで画像を選択すみませんが、何をして、いまどういう状態なのか、といった情報が全く無いので回答のしようがありません。
参考にしたトピックの内容についてはトライされたんですよね?フォーラム: 使い方全般
返信が含まれるトピック: ショートコードが効かないカスタム投稿があります。the_content
にあって、get_the_content
にないものがあります。下記エントリーでわかりやすく説明されていますよ。