DRILL LANCER

フォーラムへの返信

15件の投稿を表示中 - 1,186 - 1,200件目 (全1,531件中)
  • 投稿者
    投稿
  • 返信先: サイトマップについて #20201

    DRILL LANCER
    モデレーター

    サイトマップの固定ページの第一階層のみにCSSを適用したい場合は

    .veu_sitemap .link-list>.page_item>a {
        font-size: 18px;
        font-weight: 700;
    }

    でいけると思います。

    返信先: サイトマップについて #20189

    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' );

    タイトル部分の書き換え方は前回と同様です。

    返信先: サイトマップについて #20149

    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>タグ(主にタブの部分に表示されるもの)
    • サイト内に表示されるもの
    返信先: サイトマップについて #20100

    DRILL LANCER
    モデレーター

    サイトマップは「VK All in One Expansion Unit」で出力されています。
    サイトマップをONにするとその固定ページそのものにサイトマップが紐付けされます。
    ちなみに、ショートコード[vkExUnit_sitemap]も用意されています。

    除外ですが、現状ではIDでしか除外できないようです。

    カスタマイズする場合は下記ページを参考に自分で組むか

    WordPrssに全記事をまとめたhtmlサイトマップをプラグインなしで作成する

    別のプラグインを探すか等してみるといいかもしれません。

    とりあえず、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 の構造上表示される順番は下記のようになります。

    1. カテゴリページのタイトル
    2. カテゴリの説明欄
    3. 今回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
    モデレーター

    特定のカテゴリにのみ表示したいということでしょうか?
    それとも表示したい位置がそこだからそこで設定しようとしているということでしょうか?

15件の投稿を表示中 - 1,186 - 1,200件目 (全1,531件中)