クォーテーション等が自動変換される件 WordPress

codeやpreはWordPressでは重要

HTMLでコメントアウトする場合下のように書きます。
<!--コメントアウト-->

ここではコメントアウトの説明をするわけではない。
<!--コメントアウト-->の記述部分は今回はcodeタグで括っている。

このcodeタグやpreタグは、WordPressではとても重要であることが判明しました(私の中で)。
このcodeタグを省略すると、勝手に変換し違う表示になってしまう。
<!–コメントアウト–>

他にもWordPressで自動変換されてしまうものがある。
半角クォーテーション(')や半角ダブルクォーテーション(")が、それぞれ全角に自動変換される。

この自動変換機能の存在理由は不明ですが、とても迷惑な機能です。
プログラムソースを紹介するときに勝手に変換されると、コピペできないものね。

というわけでWordPressでは、codeやpreはとても重要ということになります。

自動変換を止める方法

この自動変換自体を止める方法はないのかと言われれば、あるわけです。
しかし、その方法を勧めるわけではない。
なぜかというと、自動変換する理由が今の自分にはわからないから。
もしかしたらセキュリティ上の配慮かもしれない。

WordPressでは、wptexturize関数により自動変換されるようだ。
対応策が用意されている。
functions.phpに次の一文を追加することで、自動変換機能はストップする。

add_filter('run_wptexturize' , '__return_false');

当サイトでは、現時点では、この関数処理をしていない。

記事の編集がたいへん

この自動変換に気づくのが遅かった人は、記事編集がたいへんと思う。
全角クォーテーションは、WordPressに付随した検索でヒットできると思う。
その記事を開いてからChromeで検索すると、全角と半角の区別ができないという始末。
いったん他のエディタにコピーして、それから置き換えして、編集しなおす。
地道にやるしかないと思います。

Revision Control 続き番号にする

リビジョンによってIDがかさ増しされ、記事と記事の間でIDが飛んでしまう。
このIDを続き番号にする方法がある。
リビジョンを使えなくしてしまえばいい。

  • メリット。続き番号で見た目がかっこよくなるかも?
  • デメリット。当然にリビジョンが使えなくなる。

このプラグイン「Revision Control」を使う時は、「IDを続き番号にする」という目的であるべきだ。
単にリビジョン数を制限したいなら、他のプラグインがおすすめとなる。

プラグインの探し方

リビジョン関係のプラグインをウェブ検索すると「Revision Control」が紹介されている。
ところが公式プラグインの中で検索しても一発でヒットしない。
「WP Revision Control」というのが出てくるのだが、たぶんそれは違う。
いや確認してないんで。

作者名が違う。
こういう時は「プラグイン名 作者名」で検索する。
今回は「Revision Control Dion Hulse」で検索すればいい。

なぜプラグイン名で検索してもトップ表示されないのか。
たぶんプラグインの構造が単純で、更新頻度が低いからでは、と予想する。

設定

各項目で「投稿リビジョンを保存しない」を選択するだけ。
あとはセーブ保存するだけ。
リビジョンを一切生成しない。

組み合わせる

プラグイン「Optimize Database after Deleting Revisions」との併用がいいと思う。
両方ともリビジョンに関係したプラグインだが、使用目的が違う。
自分もインストールしたばかりなので、しばらく様子見だが。まあそういう結論だと思う。

Optimize Database after Deleting Revisions ゴミ掃除

WordPress管理画面などが、重い、遅い、と感じたなら。
このプラグインで改善される可能性が高い。
リビジョンのキャッシュを含みいろいろゴミ掃除する、らしい。
それによって表示が早くなるというわけ。

ただ設定が英語でよくわからないんだな。
以下はネット検索して、聞いた噂というレベルなので。

設定

上半分の設定。

  • pageは固定ページ、postは普通の投稿ページ。
  • Maximum number of – most recent – revisions
    to keep per post / page。
    これがリビジョンの設定。
    ここを0にしたとしても一時的にはリビジョンは増える。
  • Delete transients。
    「DELETE EXPIRED TRANSIENTS」がいいらしい。
  • Optimize InnoDB tables too。
    チェックがいいらしい。
  • Keep a log。
    読んでもわからない私はノーチェック。
  • Scheduler。
    設定しなかった。
    これを見ると月一くらいのメンテは必要に見える。
  • 今は他の項目はノーチェックにしている。

下半分の設定はノーチェック放置でいいという噂だ。

最後に「Go To Optimizer」の後の「Start Optimization」で実行して終了。

いまいちかもなプラグイン

Search Everything

カスタムフィールドを検索できるということでインストールした。
カスタムフィールドの検索自体はできる。
キーは対象外で、値を検索する。

キーワードをハイライトするとのことだったが、したりしなかったりするのはなぜ?
わざわざ全文表示に変えたのに。
この辺は後日の調査課題としよう。

「カテゴリー名を検索」をオンにしたところ、WordPess標準の投稿一覧での検索機能に問題が生じた。
カテゴリー指定し、ボタンクリックで検索したところ何も表示されない。
プラグイン「Batch Cat」においても同様の結果となった。

つまりWordPess標準の検索機能に働きかけると見られ、誤動作の原因となりうる。
結論から言うと日頃はオフまたは停止しておいたほうがよさそうにみえる。

検索機能のカスタマイズって結構難しいのか?
「WP Custom Fields Search」。これは使用したことないが評判が悪いような気がする。
でも使ったことないんでね、実際にはわかりません。

 

この記事では後日ですが、他に該当プラグインがみつかれば追加編集しようと思ってます。

検索結果のカスタマイズ

検索結果を全文表示と抜粋表示を変更する。

まずは、search.phpを開く。
条件分岐が施されていていずれも記事本文は、get_template_part関数により表示されると予想がつく。

get_template_part

get_template_part( 'template-parts/content', 'none' );

上文の場合、template-parts/content-none.phpを実行するというような意味だと思う。
template-parts/content-none.phpは実際にある。

get_template_part( 'template-parts/content', 'search' );

別の分岐では上文のように、「search」とあった。
だからtemplate-parts/content-search.phpがあるのかと思いきや、なぜか見つからない。

template-parts/content.phpは存在することに気づく。
もしかしたら、この場合はtemplate-parts/content.phpに引数として「search」を渡しているのでは、と想像した。
template-parts/content.phpを編集したところ、カスタマイズに成功した。
この想像が正しいかは不明だが、結果オーライということで。

the_contentとthe_excerpt

the_contentが全文表示、the_excerptが抜粋表示であるとわかった。
だからこの部分を好みに合わせ変更すればいいということになる。

if ( is_search() )とある。
「検索ページなら」という意味。
この場所にあるthe_excerpt関数をthe_content関数に変更した。

日頃はオフ(削除)でもよい

Batch Cat カテゴリーを一括して外す

「設定」で表示件数を多めにしておく。
「ツール」から実際のカテゴリー操作を行う。

下段にボタンがあり、「Set」は移動、「Add」は追加、「Drop」は削除(カテゴリーから外す)。
「Add」機能に関しては、WordPress標準機能として存在するため使用しないものと考えてもいい。

セレクトボックスでカテゴリーを選択し「Search」ボタンをクリック。
対象記事にチェックを入れる。
カテゴリー一覧から、はずしたいカテゴリーを選びチェックを入れる。
「Drop」ボタンを押します。

 

この記事では後日ですが、他に該当プラグインがみつかれば追加編集しようと思ってます。

authorリンクをテキストに

記事タイトル直下にある、header内のauthorリンク部分のカスタマイズ。
つまり、著者別記事のリンクを、リンクなしの著者名テキストに変更する。

なぜ変更するかというと、そのリンクが不要と思うから。
リンク削除によって、クローラーの効率化がはかれる可能性があると考えた。
普通に考えて、著者が一人ならそのリンクは不要だ。

編集場所はどこか

当サイトでは個別記事のheader表示は、content-single.phpが該当する。
sparkling_posted_onというテーマ独自関数にて実行される。

sparkling_posted_on関数が定義されている場所は、template-tags.phpであった。

構造化が関係している

<a class="url fn n" href="https://~">著者名</a>
上記のように表示されているものを、次のように変更したいわけだ。
<a class="fn n">著者名</a>

“url fn n”は構造化データと関係あると思われ、空にするわけにはいかないようだ。
href以下を削除すればテキスト化される。
それに伴い、”url”の文字指定は削除しておく。
結果的に、class=”fn n”となる。
このような処理でないと、サーチコンソールでエラー表示が出ると思う。

編集方法

template-tags.phpを開く。

sprintf関数が使われている。
sprintfでフォーマットして、printfで出力する、ということだろう。

sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s">%2$s</a></span>',

終結していない一文だが、上記一文を一旦コメント化する。
今回は次のように変更することにした。

//sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s">%2$s</a></span>',
sprintf( '<span class="author vcard"><a class="fn n">%2$s</a></span>',

これで動いているようなので、様子見します。

未使用 後日の宿題

関数が定義済みかどうか

if (function_exists( 'sparkling_posted_on' )) {~;}

多次元配列のソート

多次元配列の定義、よくわからない。
番号が振ってないということかな?
配列の配列であるいうことは間違いなさそうだ。

2次元配列と3次元配列の違いは、配列の中にある配列の要素数??が2と3の違い。
用語がよく分からん。
あとで調べておきます。

array_multisort()というのがソートできて便利らしい。

フロントページのh1タグの消去

現時点の当サイトでは、固定ページはフロントページ(トップページ)にしか使用していない。

フロントは通常、ページタイトルはサイトタイトルと同じだ。
この場合、h1タグはタイトルと同じにする必要はない。
フロントのh1は通常と違い、うまい使い方もできそうだ、ということだ。
Wordpressのデフォルトのレイアウトだと何かと融通がきかないので、h1を一旦消去する。

構造化エラーが出ないように下準備

あらかじめhentryを消去しておく。
後日詳細。

編集場所はどこか

当サイトでは、content-page.phpが固定ページに該当するようである。

方法

<header><h1></h1></header>を、
<!--<header><h1></h1></header>-->というように、
HTMLコメントアウトすればいいと思う。

コメントアウトは入れ子にできないので範囲指定は厳密に。
他のコメントアウトを含まないように注意する。

ページタイトルの入力欄には、念のため全角スペース一文字を入力した。

Breadcrumb NavXT 記入場所

「Breadcrumb NavXT」はパンくずリストで構造化を促すプラグイン。

インストールするだけではだめで、テーマ編集から、コードを直接記入しないと動作しない。
記入コードですが、設定→ヘルプ→クイックスタートと進めば、記入例が載っています。
「typeof=”BreadcrumbList” vocab=”https://schema.org/”」の部分は必要だと思う。
例えば以下のように書きます。

<!--Breadcrumb NavXT-->
<div class="breadcrumbs" typeof="BreadcrumbList" vocab="http://schema.org/">
<?php if (function_exists('bcn_display')) {bcn_display();} ?>
</div>

個別記事への記入場所

個別記事に記入しないと、話にならないです。
自分は先頭ではなく、試しに記事の末尾に記入することにしました。
となると個別記事本文を扱う場所を探さねばなりません。

当方では、content-single.phpが該当する。
区切りのhrタグも追加しました。

カテゴリーなどへの記入場所

後からカテゴリー記事へは記入できないのかなと気がつきました。
結論を言うとこれはできます。

今回はタイトルと本文の間、つまり閉じたheaderタグの次に記入することにした。
当方では、archive.phpが該当する。

好みの問題

とりあえず動いているようなので様子見です。
デザインは後ででいいや。

結局は好みの問題なので、好きな場所においたらいいと思います。

endif

endifを含まない

基本形。

<?php
if (~) {~;}
?>

endif必須

例えば以下のように{}を使わない書き方がある。
{}を使わない場合は、endifが必須だと思う。
endifで条件文は終了だけど、その後に続けて記入しても当然に構わない。

<?php if (~) : ?>
「この部分にHTMLソースを記述できる。echoなしで出力される。」
<?php endif; echo 'hello'; ?>

カテゴリーリンクの非表示

記事タイトル直下にある、header内のカテゴリーリンク部分の編集。

所属カテゴリーへのリンクが表示されるが、その表示がない方がいい場合もある。
複数の所属カテゴリーリンクを表示するので、その場合はスマートに見えない。
構造化には成功しているので、カテゴリーへのリンクはあるわけだし。

親カテゴリーにチェックを入れるのと入れないのとでは、urlが変わってくる。
意味が違ってくるわけです。知ってました?
というわけで複数の所属カテゴリーリンクを表示させないという選択肢はある。

編集場所はどこか

当方では、content-single.phpが該当します。
タグ記述されているものを目で追い、その部分を推定します。
バッサリ、HTMLコメント化するのがわかりやすい。
テーマによって変わるので、以下は一例となります。

<!--<span class="cat-links"><i class="fa fa-folder-open-o"></i>
<?php printf( esc_html__( ' %1$s', 'sparkling' ), $categories_list ); ?>
</span>-->

 

コメント欄をまとめて非表示にするプラグイン

二つ紹介する。
二つとも使い勝手はいいように見えます。

Disable Comments

機能の一つを取り上げますと、コメント欄をすべて、一時的に非表示・停止することができる。

  1. 「どこでも」。
    ここにチェックを入れると、コメント欄をすべて、一時的に非表示・停止することができる。
    コメント停止ということでディスカッション設定項目も非表示になる。
  2. 「特定の投稿タイプに適用」。
    説明省略。

「どこでも」チェックで非表示になるディスカッション設定項目は。元に戻すことはできる。
「特定の投稿タイプに適用」のみにチェックを入れて「変更を保存」で元の状態に戻せる。

One Click Close Comments

まさにワンクリック、コメント欄の表示・非表示を切りかえる。
これは簡単、インストールするだけ。
投稿一覧に移動し、色の付いた丸をクリックして変更。

カテゴリーごとにコメント許可の変更

これがあると便利そうだけど、自分には見つけることができなかった。

失礼しました。これはWordPressの標準機能でした。
投稿一覧で一括編集することが可能です。
こんな機能あったんだな。

テーマの更新メモ

自分用メモ。

CSS

クラスbylineにcss指定が必要かどうかがまだ未解決。
displayはinlineがデフォルト。
今試したところ特に変化なし、ログインログアウト影響せず。
一時的かあるいは錯覚であった可能性があるので、この指定は一旦削除する。

!importantに関しては、もっと頻繁に使ってもいいかと感じた。

the_post_navigation

前後ページへのリンクの消去。
the_post_navigation関数の前にif文がある。

ワンポイント構文メモ。
{}を使わない書き方。:と;の使い分けに注意する。

if () :
~;
elseif () :
~;
endif;

elseifはくっつけて書く。離しても動く場合もあるようだがデメリットしかないとのこと。
endifは分岐終了を意味する。

話を戻す。
the_post_navigation関数部分だけごっそりコメント化で消すことができそうだ。
今気がついたが「投稿ナビゲーション」という文字にh2を割り振っている。
この前後ページへのリンクはSEO上よくないような気がする。
関連リンクが必要と思えば手動で書けばいいと思う。
いずれにせよ面倒なのでパンくずリストを記事末にもってくることで代用できないかと考えているところである。

固定ページのタイトル

h1は一つでいいと思うし、いずれにせよ、ややこしくしないほうがいいような気はする。

Bottom of every post 場所の探し方など

作成者は「Corey Salzano」氏とある。

ないことはない

この「Bottom of every post」というプラグイン。
管理画面の新規追加で検索できるのだが、1ページ目にはでてこない。
結構奥の方にエントリーされていて、引き出すコツがある。
「Bottom of every post Corey Salzano」と作者名をくっつけて検索する。

検索順位がなぜ低いのかは不明だが、多くの人に使われているものと思われる。
更新しない方針のようだが、当方で問題は起きていない。

使い方

「インストール済みプラグイン」を開く。
このプラグインは直接編集することで使用するという、原始的な構造だ。
「bottom-of-every-post/bottom_of_every_post.txt」を直接編集する。
編集する場所は間違えないように。

下の方に「 現在有効化されているプラグインの変更はおすすめしません。」などと警告があるが無視だ。
初期状態では英文表記されているが、すべて削除する。
代わりに挿入したいソースを、タグを含めて記入しましょう。

WordPressのリンクのパス(url)の書き方

三つに分類

  • 絶対パス。
    「https://~」。
  • ルート相対パス。
    ルートから記述する。ルートは一番上ということ。
    「/category/~」。
  • 相対パス。
    説明割愛。ややこしいだけ、使わない方がいい。

画像へのリンク

リンク挿入機能で、推奨されるリンクテキストを一旦は生成しておく。
絶対パスからルート相対パスへ変更する。

内部リンクはルート相対パス

基本的には、内部リンクはルート相対パス。
リンク切れの確率が下がる。
さらにリンク切れ対策プラグインを導入したい。

ブログカードは多用すべきではない?

WordPressで標準で用意されているブログカードについて。
絶対urlでないと表示されない仕様です。
プラグインでリンク切れチェックができないので、リンク切れしない工夫が必要。

「https://~.com/?p=123」のようにidで指定するといいです。
これはパーマリンクの種類に関係なく使用できると思う。

この時に、画像や通常の内部リンクをルート相対パスに指定しておくと都合がいい。
つまり記事検索で「https://~.com/」と調べれば、ブログカード使用記事だけ選出できますね。

このブログカード、通常の内部リンクとは違うので管理しにくく、あまり多用すべきではないのかもしれない。

 

編集画面で縦揺れさせない WordPress

WordPress編集画面でやたら画面がぐらついて揺れて表示される。
そんな経験ないですか?

編集画面上方の表示オプションを開きます。
「最大行表示エディターと集中執筆モード機能を有効化します。」という項目。
これのチェックを外すことでたぶん解決されます。
集中執筆モードなんて使いません。

スラッグとローマ字

カテゴリーのスラッグとかでローマ字を使用するときがある。

方式

ヘボン式。訓令式。日本式?

ヘボン式はパスポートに使われる。
訓令式は内閣が公布したらしい。

さて何れを使用すべきであろうか。
訓令式が簡単なので、一度はこれを使用した。

しかし、今はこれでいいのか?と迷っている。
というのは、地名、例えば駅で見る駅名にはヘボン式が使われてるよね。
地名とか人名のスラッグを作ろうと思えば、ヘボン式のほうがしっくり来るような気もする。
検索したら、外人が発音しやすいのはヘボン式なのだそうだ。

でもヘボン式って難しいんだよね
う~ん、これは悩ましい。
今思うのは、スラッグはできるだけ英語にするのがいいだろう、ということだけだ。

訓令式に関して、少しメモします。
別に推奨しているわけではないです。

訓令式(頻度高)

  • ンは一字、n。
    ただしnyの時はどうしたものか。
    調査中。
  • シは、si。
  • フは、hu。
  • ザ行は、z。
  • wo、調査中。

訓令式(頻度低)

  • ダ行、da zi zu de do。
  • ジャ行とヂャ行は同じ、zya zyu zyo。

この記事は編集途中です。
必要を持って書き足していこうと思っています。
抜け落ち多くて失礼しました。