DRILL LANCER
フォーラムへの返信
-
投稿者投稿
-
DRILL LANCERモデレーターサイトマップの固定ページの第一階層のみにCSSを適用したい場合は
.veu_sitemap .link-list>.page_item>a { font-size: 18px; font-weight: 700; }
でいけると思います。
DRILL LANCERモデレーターサイトマップの固定ページの第二階層のみにCSSを適用したいということでしょうか?
そういうことでしたら下記のように指定すれば可能です。.veu_sitemap .link-list>.page_item>ul>li>a { font-size: 18px; font-weight: 700; }
DRILL LANCERモデレーター変とは言いませんが、過去の事例と比べると下記2点が異なるようです。
- こちらには関数内で
$microdata_li
等の定義がない - HomeのURLを過去の実例では
home_url( '/' )
を使用している
過去の実例の方は Vektor 社の社員の方が書いたコードなので、できる限りトレースしたほうが良いと思います。
DRILL LANCERモデレーターこんな感じでいかがでしょうか?
実例(?)をせっかく頂いたのでそれを参考にしてみました。/** * <title>タグのタイトルを変更 * * @param string $title * @return $title */ function zzz_custom_title( $title ){ if ( is_category( 'みかん' ) ) { $title['title'] = '【驚きのみかん効果】効果抜群で栄養盛りだくさん!食べ方はってなに?'; } elseif ( is_category( 'りんご' ) ) { $title['title'] = '【驚きのりんご効果】効果抜群で栄養盛りだくさん!食べ方はってなに?'; } //以下同様に設定. //以下書き換え禁止. return $title; } add_filter( 'document_title_parts', 'zzz_custom_title', 10, 2 ); /** * <title>タグの区切り文字列を変更 * * @param string $sep * @return $sep */ function zzz_title_separator( $sep ){ $sep = '|'; return $sep; } add_filter( 'document_title_separator', 'zzz_title_separator', 10, 2 ); /** * ページヘッダータイトルを変更 * * @param string $title * @return $title */ function zzz_custom_page_title( $title ) { if ( is_category( 'みかん' ) ) { $title = '【驚きのみかん効果】効果抜群で栄養盛りだくさん!食べ方はってなに?'; } elseif ( is_category( 'りんご' ) ) { $title = '【驚きのりんご効果】効果抜群で栄養盛りだくさん!食べ方はってなに?'; } //以下同様に設定. //以下書き換え禁止. return $title; } add_filter( 'lightning_pageTitCustom', 'zzz_custom_page_title' );
タイトル部分の書き換え方は前回と同様です。
DRILL LANCERモデレーターちなみに、VK All in One Expansion Unitで、
どの固定ページにサイトマップ出力とかって設定はどこかにあるんですか?それを制御するのが固定ページの記事編集画面下部にある「HTMLサイトマップの表示」のチェックボックスということです。
つまり、「HTMLサイトマップの表示」にチェックを入れれば、
どの固定ページでもサイトマップを表示できるということになります。「HTMLサイトマップの表示」は固定ページの記事本文の下に引っかかる形で表示されるため、
やろうと思えばすべての固定ページの記事本文の下にサイトマップを表示させることも可能です。ちなみに任意の固定ページを除外する設定は「このページをHTMLサイトマップに表示しない。」になります。
興味があれば、vk-all-in-one-expansion-unit/inc/sitemap-page にあるソースコードを覗いてみるといいかもしれません。
Attachments:
You must be logged in to view attached files.
DRILL LANCERモデレーターどうやら
add_filter
の仕様を理解していなかったみたいでした。
フォーラムで過去の事例を探したところ下記の様にすればうまくいきそうです。function my_lightning_pageTitCustom( $title ) { if ( is_search () ) { $title = '前方追加文字列' . get_search_query() . '後方追加文字列'; } return $title; } add_filter( 'lightning_pageTitCustom', 'my_lightning_pageTitCustom' );
DRILL LANCERモデレータータイトルといっても2箇所あるのでどちらを変更したいのですか?両方ですか?
<title>
タグ(主にタブの部分に表示されるもの)- サイト内に表示されるもの
DRILL LANCERモデレーターサイトマップは「VK All in One Expansion Unit」で出力されています。
サイトマップをONにするとその固定ページそのものにサイトマップが紐付けされます。
ちなみに、ショートコード[vkExUnit_sitemap]
も用意されています。除外ですが、現状ではIDでしか除外できないようです。
カスタマイズする場合は下記ページを参考に自分で組むか
別のプラグインを探すか等してみるといいかもしれません。
とりあえず、GitHub にIssue を投げておきました。
https://github.com/vektor-inc/VK-All-in-One-Expansion-Unit/issues/423
DRILL LANCERモデレーター単純に下記コードでOKなのでは?
get_search_query()
で検索文字列が取得できるので、
あとは追加したい文字列を前後に配置すればOKかと。function my_lightning_pageTitCustom( $pageTitle ) { if ( is_search () ) { $pageTitle = '前方追加文字列' . get_search_query() . '後方追加文字列'; } } add_filter( 'lightning_pageTitCustom', 'my_lightning_pageTitCustom' );
DRILL LANCERモデレーター私も試してみましたがメインセクションの一部とサブセクションの見出しの部分が効いていないようでした。
- この返信は5年前にDRILL LANCERが編集しました。
DRILL LANCERモデレーター少々使い方の説明が足りなかったのか混乱させてしまったのかはわかりませんが、
関数の使い方を誤解しているようです。どれでもOKというのが混乱につながったと思われるので今回は
is_category()
の中身をIDに統一させていただきます。function zzz_instagram_category() { if ( is_category( '1' ) ) { ?> <!-- カテゴリの ID が 1 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 1 のときの埋め込みコード 終了 --> <?php } elseif ( is_category( '2' ) ) { ?> <!-- カテゴリの ID が 2 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 2 のときの埋め込みコード 終了 --> <?php } elseif ( is_category( '3' ) ) { ?> <!-- カテゴリの ID が 3 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 3 のときの埋め込みコード 終了 --> <?php } else { ?> <!-- 上記のどれにも当てはまらないときの埋め込みコード 開始 --> <!-- 上記のどれにも当てはまらないときの埋め込みコード 終了 --> <?php } } add_action( 'lightning_loop_before', 'zzz_instagram_category' );
この状態のときにカテゴリの ID が 4 のときの埋め込みコードを追加する場合は
function zzz_instagram_category() { if ( is_category( '1' ) ) { ?> <!-- カテゴリの ID が 1 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 1 のときの埋め込みコード 終了 --> <?php } elseif ( is_category( '2' ) ) { ?> <!-- カテゴリの ID が 2 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 2 のときの埋め込みコード 終了 --> <?php } elseif ( is_category( '3' ) ) { ?> <!-- カテゴリの ID が 3 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 3 のときの埋め込みコード 終了 --> <?php } elseif ( is_category( '4' ) ) { ?> <!-- カテゴリの ID が 4 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 4 のときの埋め込みコード 終了 --> <?php } else { ?> <!-- 上記のどれにも当てはまらないときの埋め込みコード 開始 --> <!-- 上記のどれにも当てはまらないときの埋め込みコード 終了 --> <?php } } add_action( 'lightning_loop_before', 'zzz_instagram_category' );
となります。デフォルト設定が必要ない場合は
function zzz_instagram_category() { if ( is_category( '1' ) ) { ?> <!-- カテゴリの ID が 1 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 1 のときの埋め込みコード 終了 --> <?php } elseif ( is_category( '2' ) ) { ?> <!-- カテゴリの ID が 2 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 2 のときの埋め込みコード 終了 --> <?php } elseif ( is_category( '3' ) ) { ?> <!-- カテゴリの ID が 3 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 3 のときの埋め込みコード 終了 --> <?php } } add_action( 'lightning_loop_before', 'zzz_instagram_category' );
とか
function zzz_instagram_category() { if ( is_category( '1' ) ) { ?> <!-- カテゴリの ID が 1 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 1 のときの埋め込みコード 終了 --> <?php } elseif ( is_category( '2' ) ) { ?> <!-- カテゴリの ID が 2 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 2 のときの埋め込みコード 終了 --> <?php } elseif ( is_category( '3' ) ) { ?> <!-- カテゴリの ID が 3 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 3 のときの埋め込みコード 終了 --> <?php } elseif ( is_category( '4' ) ) { ?> <!-- カテゴリの ID が 4 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 4 のときの埋め込みコード 終了 --> <?php } } add_action( 'lightning_loop_before', 'zzz_instagram_category' );
のようになります。
P.S.
というか、普通にカテゴリの説明欄に記述して上手く表示されるならコードは不要かもしれませんね。
案外ブラウザキャッシュやプラグインのキャッシュの影響だとか、
画像の非同期読み込みや画像の遅延読み込み等影響が強いかもしれません。
もし、JavaScript を結合ないしは圧縮している場合はその設定を解除してみると良いかもしれません。P.P.S.
IDは記事・添付ファイル・画像・カテゴリ等が追加されるたびに 1 増えていきます。
なので、カテゴリのIDが連番になることはほぼないです。
連番にしたのはわかりやすくするためなので ID は適宜変更してください。P.P.P.S.
Lightning の構造上表示される順番は下記のようになります。- カテゴリページのタイトル
- カテゴリの説明欄
- 今回
add_action( 'lightning_loop_before', 'zzz_instagram_category' );
で追記したコード
カテゴリの説明欄のみで用を足せる場合はそちらを利用し、
そうでない場合はカテゴリの説明欄は空欄にしておき、
今回のコードの埋め込みコードを記述する部分にカテゴリの説明文のHTMLコードを合わせて記述してください。
DRILL LANCERモデレーターちょっと状況がつかめないので画像を交えて説明していただけませんか?
今の時点で言えるのは、このコードはカテゴリの説明の直後に記述内容を出力するものです。
あと、最下部ということで心当たりがあるのは
add_action( 'lightning_loop_after', 'zzz_instagram_category' );
を追加していたりしていませんか?
DRILL LANCERモデレーターこちらのコードはインスタグラムの埋め込みを表示させたいカテゴリー名かID名をis_category( ‘@@@@@@@’ )の「@@@@@@@」の箇所に入力することで、インスタグラムの埋め込みでエラーが出なくなるということでしょうか?
概ねその解釈であっています。
is_category( '@@@@@@@' )
の中に入るのはID, スラッグ, 名前 どれでもOKです。
あとは、
<!-- カテゴリ@@@@@@ときの埋め込みコード 開始 -->
と
<!-- カテゴリ@@@@@@のときの埋め込みコード 終了 -->
の間にカテゴリ@@@@@@@で表示させたい埋め込みコードを入力すればOKです。
私のコードは余計なフィルターを一切通さずに直接HTMLコードを表示するコードなのでおそらくエラーは発生しないと思います。
DRILL LANCERモデレーター一番シンプル(?)に行うにはこんな感じにするのが良さそうな気がします。
function zzz_instagram_category() { if ( is_category( '9' ) ) { ?> <!-- カテゴリの ID が 9 のときの埋め込みコード 開始 --> <!-- カテゴリの ID が 9 のときの埋め込みコード 終了 --> <?php } else if ( is_category( 'Stinky Cheeses' ) ) { ?> <!-- カテゴリの名前が Stinky Cheeses のときの埋め込みコード 開始 --> <!-- カテゴリの名前が Stinky Cheeses のときの埋め込みコード 終了 --> <?php } else if ( is_category( 'blue-cheese' ) ) { ?> <!-- カテゴリのスラッグが blue-cheese のときの埋め込みコード 開始 --> <!-- カテゴリのスラッグが blue-cheese のときの埋め込みコード 終了 --> <?php } else { ?> <!-- 上記のどれにも当てはまらないときの埋め込みコード 開始 --> <!-- 上記のどれにも当てはまらないときの埋め込みコード 終了 --> <?php } } add_action( 'lightning_loop_before', 'zzz_instagram_category' );
条件分岐の部分はカテゴリページの条件分岐タグが参考になると思います。
P.S.
Vektor,Inc さんの手法のほうがコードの記述量が少なくて済みそうな気がします。
また、この手法は速度面も計算回数的に微妙だったりします。P.P.S.
上記関数の形式を活用しつつ、共通部分は普通にHTMLコードで書いて
URLの部分のみカスタムフィールドから取得して反映する形式が私としては良さそうな気がします。P.P.P.S.
保存したカスタムフィールドを the_content フィルターを通してから出力する関数を作る
セキュリティの観点からこの作業を行ったほうがいいのでしょうか?
DRILL LANCERモデレーター特定のカテゴリにのみ表示したいということでしょうか?
それとも表示したい位置がそこだからそこで設定しようとしているということでしょうか? - こちらには関数内で
-
投稿者投稿