投稿日:2017/12/20
更新日:2022/01/06
wordpressのプラグインAll in one SEOのmeta keywordsが大文字で入力しても小文字で表示される件。
keywordsに関しては大文字も小文字も関係ないみたいですが
https://translate.google.co.jp/translate?hl=ja&sl=en&u=https://www.en.advertisercommunity.com/t5/Performance-Optimization/Upper-case-or-lower-case-in-keywords/td-p/328696&prev=search どうして?と調査依頼があったので
調べました。
それに伴いsqlの備忘録。
all-in-one-seo-pack/aioseop_class.php
L3222あたり
小文字化したくない場合は$this->strtolowerを削除すればok。
DBから値をとって確認作業が増えてしまうが以下。
それだと確認作業ができない。
なのでBINARY を使って区別しています。 http://d.hatena.ne.jp/sutara_lumpur/20120818/1345280287
知らなかった… ちなみに大文字、小文字を英語でどう言うかも知りませんでした。 Uppercase(大文字)
Lowercase(小文字) だそうな。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14108129349
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1360954443
keywordsに関しては大文字も小文字も関係ないみたいですが
https://translate.google.co.jp/translate?hl=ja&sl=en&u=https://www.en.advertisercommunity.com/t5/Performance-Optimization/Upper-case-or-lower-case-in-keywords/td-p/328696&prev=search どうして?と調査依頼があったので
調べました。
それに伴いsqlの備忘録。
プラグイン
プラグインのファイルに以下の記述all-in-one-seo-pack/aioseop_class.php
L3222あたり
function clean_keyword_list( $keywords ) {
$small_keywords = array();
if ( !is_array( $keywords ) ) $keywords = $this->keyword_string_to_list( $keywords );
if ( !empty( $keywords ) )
foreach ( $keywords as $word ) {
$small_keywords[] = trim( $this->strtolower( $word ) );
}
return array_unique( $small_keywords );
}
$small_keywords[] = trim( $this->strtolower( $word ) );
strtolowerで想像できますが$this->strtolower
をもぐってみると大文字を小文字化してる処理がある。小文字化したくない場合は$this->strtolowerを削除すればok。
テーマ
テーマファイル内で解決したければadd_filter
を使って対応。DBから値をとって確認作業が増えてしまうが以下。
function upper_keywords($keywords){
global $wpdb;
$key = strtoupper($keywords);
$results_page = $wpdb->get_var( $wpdb->prepare(
"
SELECT meta_id
FROM $wpdb->postmeta
WHERE meta_value = BINARY %s
",
$key
) );
if($results_page) {
$keywords = strtoupper($keywords);
}
return $keywords;
}
add_filter('aioseop_keywords', 'upper_keywords');
mysqlはデフォルトは大文字と小文字が区別しないみたいでそれだと確認作業ができない。
なのでBINARY を使って区別しています。 http://d.hatena.ne.jp/sutara_lumpur/20120818/1345280287
知らなかった… ちなみに大文字、小文字を英語でどう言うかも知りませんでした。 Uppercase(大文字)
Lowercase(小文字) だそうな。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14108129349
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1360954443