「wordpress」タグアーカイブ

WordPress 管理画面にオリジナルメニュー「あなたのコメント」を追加 BuddyPressカスタマイズメモ

管理画面にオリジナルメニュー「あなたのコメント」を追加

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。

普通「コメント」は、全てのコメントが見える。

その「コメント」を「自分の投稿へ、他人がつけてくれたコメント」にした上で、別途オリジナルメニューの「あなたのコメント」を追加する。

「あなたのコメント」は「自分が、他人の投稿へつけたコメント」とする。
 

functions.php へ記述

//「あなたのコメント」をメニューに追加

add_action( 'admin_menu', 'register_my_custom_menu_page' );
function register_my_custom_menu_page() {
add_menu_page('自分で書いたコメント', 'あなたのコメント', 'edit_posts', 'edit-comments-mine.php', '', 'dashicons-admin-customizer', 53);
}

add_menu_page();の使い方と説明は下記。詳細はWordpress公式の関数リファレンスを参照。

add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );

$page_title:(必須) メニューが選択されたとき、ページのタイトルタグに表示されるテキスト。
$menu_title:(必須) メニューとして表示されるテキスト
$capability:(必須) メニューを表示するために必要な権限。
$menu_slug:(必須) メニューのスラッグ名またはphpファイルへのパス。
$function:(オプション) メニューページを表示する際に実行される関数。
$icon_url:(オプション) メニューのアイコンを示す URL。
$position:(オプション) メニューが表示される位置。省略したら最下部に表示。
$positionの数字による場所:
2 – ダッシュボード
4 – (セパレータ)
5 – 投稿
10 – メディア
15 – リンク
20 – 固定ページ
25 – コメント
59 – (セパレータ)
60 – 外観(テーマ)
65 – プラグイン
70 – ユーザー
75 – ツール
80 – 設定
99 – (セパレータ)
(例:ダッシュボードの次に入れたいなら、「3」にする)

ここでは、メニューに追加する方法だけを紹介しているが、今回の例では、別途phpファイル「edit-comments-mine.php」を用意する必要がある

「あなたのコメント」に投稿者自身が、人の記事に書いたコメントを表示

で紹介。

cssで投稿画面の不要なスタイル、文字修飾(インデント、キーボードショートカットなど)オプションを非表示に WordPress BuddyPressカスタマイズメモ

投稿画面の不要なエディタボタンを非表示にする

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。

WordPressで独特の文字修飾エディタがあるので、消しておこう。

インデントとかいらんね。
 

functions.php へ記述

エディタ周りは簡単にCSSで非表示にしておく。

//cssで不要物を消去

if (!current_user_can('administrator')) {
function my_admin_print_styles(){
 echo '<style type="text/css">'; //投稿のエディタボタン関連
  echo '#qt_content_em,';
  echo '#qt_content_block,';
  //echo '#qt_content_del,';
  echo '#qt_content_ins,';
  echo '#qt_content_img,';
  echo '#qt_content_ul,';
  echo '#qt_content_ol,';
  echo '#qt_content_li,';
  echo '#qt_content_code,';
  echo '#qt_content_more,';
  echo '#qt_content_close,';
  echo 'qt_content_fullscreen';
  echo '{display:none !important;}';
  echo '</style>';
}
add_action('admin_print_styles', 'my_admin_print_styles', 21);
}

「//」を頭につけると、コメントアウトなので、メニューからは削除されない。

上の例でいくと、例えば、「打消し線」も非表示にしたいなら、

//echo '#qt_content_del,';

  ↓

echo '#qt_content_del,';

“管理者”でメニューを削除したくない場合は、一番上と一番下の

if (!current_user_can('administrator')) {

}

を削除すればいい。
 

「スタイル」のプルダウンで出る文字修飾エディタ「Tiny MCE」の中身を変えるには別の記述が必要

TinyMCEの編集は下記参照。

・sango のビジュアルエディターのバグ修正(スマホでTinyMCEの文字修飾がおかしい)

WordPress をAMP化した時に アドセンスのエラーで表示されないのを修正する手順

WordPress を公式プラグインでAMP対応にしてみた

公式プラグイン名はその名も AMP

公式プラグインだけあって、AMP化は概ね問題ないはず。

AMP化後24時間以内に、Googleから New AMP issues detected for site https://xxxx.net/ のようなタイトルで、AMPページの問題点が送られてくることがある。

まず広告を掲載する前に、このエラーを解決していく必要がある。

AMPページの問題を一つずつ解決していく

問題があると言われたページを下記のURLで張り付けてテストをすると。

https://search.google.com/test/amp

色々なエラーを教えてくれる。

WordPressで代表的なエラー(簡単に直せるもの)を2個程紹介。

Error in required structured data element
これは、ファビコンが無い場合に出るエラー。

エラー詳細を確認すると、logo 部分に、A value for the logo field is required と言われている。

管理画面→外観→カスタマイズ→サイト基本情報→サイトアイコンに適当な正方形の画像をアップロードすることで解決できる。

Image size smaller than recommended size
これは、AMPページ内に使っている画像ファイルの大きさ(容量ではなくサイズ)が小さい時にでるエラー。

該当ページの小さい画像を大きいものに差し替える必要がある。

Google的推奨サイズは横幅1200px以上でなかなかのハードルの高さ。

なお、画像の両サイドに白い部分を塗り足す等の対応でもOKだとGoogle公式ページで紹介されている。
 

AMP用 Googleアドセンスの追加

まずAMP用のGoogle Adsenseには大きく2種類ある。

自動広告と、従来のテキスト広告だ。

自動広告は、コードを、WordpressのAMP用テンプレートのヘッダーとフッターに記述しておくと、自動的に文中に広告を入れていってくれる。

自動広告貼り付け手順は Google Adsense の広告コード取得の画面で丁寧に説明してくれているので割愛。

WordPressのfunctions.phpを編集して、テンプレートのヘッダーとフッターにコードを入力させるのを忘れずに。
 

テキスト広告は、従来のアドセンスと同じように、自分で1つずつ、表示する場所にコードを貼り付けていく。

AMPのテンプレートファイルを編集する必要があるので、AMPテンプレートを子テーマ化しておかなければならない。

子テーマフォルダ(wp-content/themes/…)の中に amp フォルダを作ってその中に amp 用テンプレートを入れる。

記事部分に広告を挿入するなら
(wp-content/themes/子テーマフォルダ名/amp/single.php) のような形にする。

single.php の広告を表示したい場所に、Googleアドセンスで取得した、広告コードをコピペして完成。
 

広告を貼り付けたらまたエラーが来た場合

広告を入れてから表示されるまでに30分ぐらいと言われるが、実際には数時間必要な場合もある。

広告を入れた後にエラーが出る場合は、いつまでたっても表示されない(24時間以内にGoogleからAMPの問題点のメールが来る)。

The tag ‘amp-ad extension .js script’ is missing or incorrect, but required by ‘amp-ad’. This will soon be an error.
amp-ad 拡張タグのJSスクリプトが存在しないか正しくありませんが、amp-ad には必要です。これはまもなくエラーになるでしょう。

というエラーが出た場合。

これは広告タグを貼り付けているのに、必要なjsファイルをヘッダーに追加できていない場合に表示される。

この場合は、前述のfunctions.phpを編集するのと同じ要領で、

<script async custom-element="amp-ad" src="https://cdn.ampproject.org/v0/amp-ad-0.1.js"></script>

このコードをAMPテンプレートのヘッダーに挿入することで修正可能。