Twitterボタンを設置する

今回は共有ボタン(シェアボタン)を作る。

https://publish.twitter.com/#

ボタン作成の公式サイトを利用する。
元は英文のようだがChromeで翻訳して問題は生じなかった。

Twitterボタンを選択。
共有ボタンを選択。
「カスタマイズオプションを設定する。(set customization options)」のリンクをクリック。
そのページでボタンをカスタマイズできる。

カスタマイズの一例。

自分に通知させる

誰かがツイートした時に、自分に通知させる事ができる。
「スクリーンネームを含める」のボックスにスクリーンネームを記入。
スクリーンネームとは「@~」のようなユーザー名の事。
パラメータは、data-via。

フォローを促す

ツイートした人に、フォローも薦めてくれる。
「アカウントを推薦」のボックスにスクリーンネームを記入。
パラメータは、data-related

コードをペーストする場所

決定するとコードが表示されるのでコピーし任意の場所にペースト(貼り付け)します。
WordPressで個別記事に該当する場所にペーストする。
場所はcontent-single.php。「template-parts」→「content-single.php」。

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

WordPressで記事投稿する際、半角ダブルクォーテーション(")は全角()に変換される。
その他、シングルクォーテーションなどを、勝手に自動変換して表示される。

"a"」→「“a”
'b'」→「‘b’
<!--comment-->」→「<!–comment–>

この自動変換機能は、コード等の説明をする際には迷惑な機能だ。

自動変換する理由

自動変換機能が何故ついているのかは不明だ。
セキュリティ上の配慮かとも考えたが、英語圏でも利用されるから、その可能性は低そうだ。
という事で、この機能はストップさせた方がよさそうだ。

自動変換機能を停止する方法

加筆する場所はfunctions.php。
末尾にでも、以下のように追加すればよい。

// 自動変換停止
add_filter('run_wptexturize' , '__return_false');

codeタグで回避

このクォーテーション等を自動変換する機能は、codeタグまたはpreタグで括る事によっても回避が可能だ。
テーマ更新等でファイル書き換えを余儀なくされる事もあろうから、codeタグ等を適宜利用する習慣を持ったほうがいい。

この自動変換機能を知らなかった方は全角クォーテーション等が使われていないかチェックした方がいい。
WordPressの検索機能で調べることができる。
ちなみに全角クォーテーションは、ダブルとシングル、左と右、計4種類ある。

検索結果を全文表示・抜粋表示

検索結果を全文表示を抜粋表示を編集によって変更する。
テーマによって異なるかもしれない。

場所

修正場所を考えてみる。
検索結果を表示させるのは、search.phpのようだ。
そのsearch.phpにある、get_template_part関数が修正すべき場所を指定している。

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

このコードの意味は、「template-parts/content-search.php」が存在すれば「template-parts/content-search.php」、なければ「template-parts/content.php」が該当場所である、という意味だと思われる。

the_contentとthe_excerpt

the_content関数が全文表示、the_excerpt関数が抜粋表示。

ここからは実際の編集だが、ある程度はソースを読む必要がある。
今回は抜粋表示から全文表示に変更する。
「the_excerpt」を検索したが二箇所ある。どちらを修正すべきか。

if ( is_search() ) ~

これは「検索ページなら」という条件文。
この「if」範囲内に、「the_excerpt」は一つのみ存在を確認された。
そのthe_excerptを修正すればよい。

 

<?php the_excerpt(); ?>

以下のように修正した。

<?php //全文表示に the_excerpt(); ?>
<?php the_content(); //全文表示に ?>

以上です。

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

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

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

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

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

編集場所はどこか

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

方法

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

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

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

テーマの更新メモ

自分用メモ。

CSS

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

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

the_post_navigation

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

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

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

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

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

固定ページのタイトル

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

コメント投稿のウェブサイト欄を消してみた

コメント投稿のウェブサイト投稿欄を消すのに挑戦した際の備忘録です。

でも現在は、コメント投稿フォームのカスタマイズはしない事にしました。
アラシ対策が面倒という事で、コメント自体を受けつけないことにした。

というわけなので、参考程度に読んでね。

CSSによる方法もある。
CSSで非表示

編集場所はどこか

今回はadd_filterによるカスタマイズ。
これは、通常はfunctions.phpに追加するのが普通ということでしょうか。
comments.phpとか探す必要はないということですね。

当方ではfunctions.phpに追加して、動作しました。

編集の全文

実際に当サイトで使ってみた全文を、まずは示します

add_filter('comment_form_default_fields' , function($arg){
$arg['url'] = '';
return $arg;
});
add_filter('comment_form_defaults' , function($arg){
$arg['comment_notes_before'] = '<p class="comment-notes"><span id="email-notes">'
. 'メアド入力は任意です。表示されません。'
. '</span></p>';
return $arg;
});

前半の数行

add_filter('comment_form_default_fields' , function($arg){
$arg['url'] = '';
return $arg;
});

'url'の部分が、ウェブサイト投稿欄を指定している。
さらにメールアドレス投稿欄も削除する場合、$arg['email'] = '';の一文を加える。
つまり変更したいものだけを指定すればいい。

途中からfunction定義に移っていく。
無名関数を使う。
関数名を定義すると外部に干渉することがあると聞いた。
それで関数名を指定しない方法をとりました。

function ($arg) とあります。()の中、つまり引数は省略不可。

後半の数行

add_filter('comment_form_defaults' , function($arg){
$arg['comment_notes_before'] = '<p class="comment-notes"><span id="email-notes">'
. 'メアド入力は任意です。表示されません。'
. '</span></p>';
return $arg;
});

外に影響しないので、変数名は同じもの(今回はarg)を使ってよい。

メアドに関する注意書きの文を変更する。
この指定内容はHTMLタグを含む。

「メールアドレスが公開されることはありません。」が初期値。
好みの文に変更する。

メールを任意とする場合

メールを任意とする場合は、管理画面からその設定をする。
またCSSで、displayがnoneになってないか確認する。

固定ページでの構造化データエラー

サーチコンソールの構造化データ項目でのエラー表示のことである。
フロントに固定ページを採用していると、上記エラーが発生する場合がある。

このエラー対策を検索したところ、hentry指定をなくすのが簡明な方法のようだ。
<~ class="hentry">
post_class関数によって指定されるようなので、該当部分をコメントアウトすればいいだろう。

編集場所はどこか

当方では、固定ページはcontent-page.phpが該当する。

編集方法

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

上の一文に、php post_class関数が含まれている。
今回は、//を追加して一行コメントアウトで非表示にしてみます。

<article id="post-<?php the_ID(); ?>" <?php //post_class(); ?>>

以上です。

前の記事・次の記事をなくす

WordPressでは一つの記事の下に、前の記事のリンクとかつく。
これを消すにはどうするか。

編集場所はどこか

single.phpのthe_post_navigation()関数が該当するようだ。

消し方

近辺をざっくりコメントアウト。
()やセミコロンの位置に注意。

/* コメントアウト the_post_navigation()
the_post_navigation( array(

) );
*/