LABE
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: 引越後にメディアのサムネイルが表示されなくなった以前WordPressのソースを覗いた時の記憶によると、アップロードしたファイルのカスタムフィールドにファイルのURLが記録されており、
wp_get_attachment_url()のような関数ではそのデータを参照しているようです。
ファイルのURLがキー_wp_attached_fileにあり、さらにメタデータのキー_wp_attachment_metadataの中にも縮小画像の各サイズのURL(image_downsize()等で使われます)が格納されています。
これらについても確認されましたか?フォーラム: 使い方全般
返信が含まれるトピック: カテゴリ一覧の作り方を知りたい。「ゲーム」カテゴリのページに、その子カテゴリである各タイトルの一覧を表示したい、ということでしょうか。
category.php では
get_queried_object_id()で現在のページのカテゴリIDを取得できます。
これをwp_list_categories()に使うことで、子カテゴリの一覧を表示できます。
例えばこんな感じです。$this_cat = get_queried_object_id(); wp_list_categories(array( 'parent' => $this_cat, // このカテゴリIDの子を表示 'title_li' => '', ));wp_list_categories()にはいろいろ設定があるので、お好みに合わせて追加してください。フォーラム: 使い方全般
返信が含まれるトピック: 検索結果で固定ページ内の文字も対象にできますか?特に設定を行わなければ、ブログ内検索では固定ページも検索対象だったと思いますが。
俺なんかはわざわざpre_get_postsアクションを使って$wp_query->set('post_type', 'post');で検索対象を「投稿」に限定しているくらいですから。
フォーラム: 使い方全般
返信が含まれるトピック: 「親なしカテゴリー+親なしカテゴリー」の一覧ページをページネーションがうまく動作する状態で表示したいです。「新着情報一覧+ブログ」の一覧ページには、どのようなページを使用するご予定ですか?
表示する件数とカテゴリーIDを指定している(中略)の部分を削除すると「新着情報一覧ページ」のみの状態でページネーションもうまく動作します。
とのことなので、何かのアーカイブページかと思われますが。
フォーラム: 使い方全般
返信が含まれるトピック: ループ内で、親と子カテゴリーを選択したとき、親カテゴリーのみ表示したい親カテゴリのみに限定したうえで、そのうちの一つだけを表示する、ということでよろしいですか?
その場合、上でお示ししたコードの下から3行目、return $cats;
を
return array( reset( $cats ) );
に変えていただくといいかと思います。
フォーラム: 使い方全般
返信が含まれるトピック: メニュー中のドロップダウンの不都合。先にお示ししたコードの前半(1〜7行目)は
@media screen and (min-width: 59.6875em) { .... }の中ではなく外側なのだと明示したつもりでしたが、今見てみるとちゃっかり内側に入っていますね。
「※どこに追加するべきかわからなければ、最後に追加してください。」とはそのまま追加という意味だったのですが。あれからスタイルがいろいろ変わっているようですので、もう一度検証してみました。
heightの値はフォントサイズに依存するので、メディアクエリのブレイクポイントが多いとそれだけ追従しなければならないのです。
よって、現在の状態では以下のようになろうかと思います。.dropdown-toggle { top: 0; z-index: 2; width: 100%; height: 48px; text-align: right; } @media screen and (min-width: 46.25em) { .dropdown-toggle { height: 49px; } } @media screen and (min-width: 55em) { .dropdown-toggle { height: 48px; } } @media screen and (min-width: 59.6875em) { .dropdown-toggle { height: 30px; } } @media screen and (min-width: 68.75em) { .dropdown-toggle { height: 34px; } } @media screen and (min-width: 77.5em) { .dropdown-toggle { height: 40px; } }最初の部分(1〜7行目)も含めて、すべての
@mediaの外側にそのまま記述してください。
CSSファイルの末尾で結構です。
そして、この部分のフォントサイズやパディングなどが変更されたら、それに合わせて再度調整しなければなりません。この方法はかなり“小手先”の手法ですので、本当はもっと効率的な方法を使いたいところですが、変更が大掛かりすぎてちょっとここには書けません。
思いついた方法だけ、一応書いておきます。<a>要素のクリックイベントに、トグルボタンのイベントをバインドする<a>要素の高さを動的に取得して、トグルボタンに反映させる- トグルボタンのマークアップを変えてスタイルを指定しやすくする
- そもそもメニューの使い方がテーマの仕様に合っていない
フォーラム: 使い方全般
返信が含まれるトピック: ループ内で、親と子カテゴリーを選択したとき、親カテゴリーのみ表示したいすみません、
in_array()のカテゴリオブジェクトに対する挙動が思っていたのと違ったようです。
今度はちょっとこちらでテストして大丈夫だったので、いかがでしょうか。function my_category_list( $categories, $post_id ) { $cats = $categories; // IDだけにする $cats_ID = array_map( function ( $cat ) { return $cat->term_id; }, $cats ); // カテゴリを一つずつ処理 foreach ( $categories as $key => $category ) { $ancestor = $category; // カテゴリの祖先を一つずつ辿る while ( ! empty( $ancestor->parent ) && $ancestor = get_category( $ancestor->parent ) ) { // 祖先カテゴリが記事に含まれれば if ( in_array( $ancestor->term_id, $cats_ID, true ) ) { // 元のカテゴリを除外 unset( $cats[ $key ] ); break; } } } return $cats; } add_filter( 'the_category_list', 'my_category_list', 10, 2 );フォーラム: 使い方全般
返信が含まれるトピック: ループ内で、親と子カテゴリーを選択したとき、親カテゴリーのみ表示したいthe_category()で表示されるカテゴリはthe_category_listフィルターで変更することができます。
今回の場合、ある子カテゴリとともに親カテゴリにも属しているならその子カテゴリを除外する、というふうにすれば実現できます。
そこで、親カテゴリと言わず、祖先カテゴリ(親の親……etc.)すべてにわたって判別できるコードを書いてみました。
これは functions.php に追記してください。function my_category_list( $categories, $post_id ) { $cats = $categories; // カテゴリを一つずつ処理 foreach ( $categories as $key => $category ) { $ancestor = $category; // カテゴリの祖先を一つずつ辿る while ( ! empty( $ancestor->parent ) && $ancestor = get_category( $ancestor->parent ) ) { // 祖先カテゴリが記事に含まれれば if ( in_array( $ancestor, $categories, true ) ) { // 元のカテゴリを除外 unset( $cats[ $key ] ); break; } } } return $cats; } add_filter( 'the_category_list', 'my_category_list', 10, 2 );なおテストはしていないのでご参考までに。
フォーラム: 使い方全般
返信が含まれるトピック: ユーザーログイン時のコメントフォームの挙動についてcomment_form_submit_fieldというフィルターもありますね。
こちらはコメントフォームの送信ボタンに対するフィルターですが、ここで入力項目を追加することもできると思います。function my_submit_field( $submit_field, $args ) { $my_fields = 'ここに追加'; return $my_fields . $submit_field; } add_filter( 'comment_form_submit_field', 'my_submit_field', 10, 2 );こちらだと、ログインの有無にかかわらず適用され、表示位置としても妥当かと思います。
- この返信は9年前にLABEが編集しました。
フォーラム: 使い方全般
返信が含まれるトピック: ユーザーログイン時のコメントフォームの挙動についてログインしているユーザーに対してのみ、実行されるアクション
comment_form_logged_in_afterがあり、comment_form()の引数のlogged_in_asのメッセージ表示直後に実行されます。function my_logged_in_after( $commenter, $user_identity ) { } add_action( 'comment_form_logged_in_after', 'my_logged_in_after', 10, 2 );ログインしているユーザーとしていないユーザーの両方に対して実行されるアクションは、それより少し前に実行される
comment_form_topになります。function my_comment_form_top() { } add_action( 'comment_form_top', 'my_comment_form_top' );このいずれかのアクションにて入力項目をechoすればいいかと思いますが、アクションの実行タイミングとしては若干思い通りにならないかもしれません。
- この返信は9年前にLABEが編集しました。
フォーラム: 使い方全般
返信が含まれるトピック: ユーザーログイン時のコメントフォームの挙動について「ログインしていないときのみカスタマイズが利いており」
「ログインしている場合にはフィルターとしてきのうしていない」
とありますが、カスタマイズにはフィルターを使っているんですよね?
それだと、ログインしていないときにフィルターは動作しているのですから、
「これらのフィルターはログインしていなければ動作しないものなのでしょうか?」
の意味がよくわからないのですが、書き間違いでしょうか。ちなみに、ログインしている場合はコメントフォームの「名前」「メールアドレス」「URL」の入力欄が表示されないので、
comment_form_fieldsフィルターの大部分とcomment_form_default_fieldsフィルターのおそらく全部は、実質的には無意味になるでしょう。フォーラム: 使い方全般
返信が含まれるトピック: メディアライブラリのメニューを非表示にしたいです!CSSのセレクターには詳細度(優先度)があります。
すでに適用されているスタイルと競合する指定を追加した場合は、詳細度の高いほうだけが適用されます。
すでに適用されているスタイルがどのように(セレクター、設置場所など)指定されているかを調べてみてください。フォーラム: 使い方全般
返信が含まれるトピック: contactform7の ”福島” “東京” “京都”の文字列が表示されない件について手元の環境で試してみましたが、プラグインなど環境は違うと思いますが、その状況は再現しませんでした。
どうでもいい話ですが、その3都府県のチョイスがどことなく恣意的な感じがするのは気のせいでしょうかね……
ないとは思いますが、NGワード的な何かとか……もしくは、「県」「都」「府」を抜いて「福島」「東京」「京都」としてみるとどうなるでしょうか。
フォーラム: 使い方全般
返信が含まれるトピック: 特定のカテゴリーにて年別アーカイブとカスタムフィールドアーカイブの混在うまくいかず、とは具体的にはどのような状態でしょうか。
get_template_part()でテンプレートファイルを呼び出していますが、そちらのほうに問題があるならそちらもご提示いただかないと助言できないかもしれません。そして
query_posts()は非推奨の関数で、使うべきではありません。
コードを見る限りでは、代わりにpre_get_postsアクションで実現できると思います。フォーラム: 使い方全般
返信が含まれるトピック: カスタム投稿ページに表示される、特定記事について@mura0403 さん
それは特定の投稿をアーカイブから除外するコードですが、 @natsu85 さんの意図する動作ではないのではないでしょうか。@natsu85 さん
上で「あっています」と言いましたが、よく読んでみれば「あっていない」ような気がします。
アーカイブページのメインループでは、取得した(複数の)投稿を一つずつ順に処理します。
get_the_ID()は、現在処理中の1件の投稿のIDを返します。
if ( xxx == get_the_ID() )は、「xxx(記事AのID)とget_the_ID()を比較し等しいならば」という意味になります。
結果的に、ループ処理において記事Aに差し掛かった時にのみifブロックの処理が実行され、そうでない場合はelseブロックの処理が実行されます。