「スマホ・パソコン・Web関連」カテゴリーアーカイブ

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テンプレートのヘッダーに挿入することで修正可能。

投稿画面で、メタディスクリプション、トラックバック、リビジョン、フォーマットなどの不要なオプションを非表示 WordPress BuddyPressカスタマイズメモ

投稿画面で、メタディスクリプション、トラックバック、リビジョン、フォーマットなどの不要なオプションを非表示

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

WordPressに慣れていない人が使うことも想定できるので、ややこしいSEOモノや、使わないトラックバックなどのメタボックスは全て非表示にしておきたい。


 ↓↓↓

 

ついでに、上の「表示オプション」のチェックボックスもいらないので消えてほしい。


 ↓↓↓

 

functions.php へ記述

//投稿画面の削除

if (!current_user_can('administrator')) {
function yuya_remove_admin_menu() {
//sango投稿ページ
remove_meta_box( 'sng-meta-description', 'post', 'normal' );//メタデスクリプション
remove_meta_box( 'sng-title-tag', 'post', 'normal' );//【高度な設定】titleタグ
remove_meta_box( 'sng-meta-roboto', 'post', 'side' );//メタロボット設定
remove_meta_box( 'sng-one-column', 'post', 'side' );//1カラム(サイドバーを非表示)
remove_meta_box( 'sng-no-ads', 'post', 'side' );//この記事では広告を非表示

//sango固定ページ
remove_meta_box( 'sng-meta-description', 'page', 'normal' );//メタディスクリプション
remove_meta_box( 'sng-title-tag', 'page', 'normal' );//【高度な設定】titleタグ
remove_meta_box( 'sng-meta-roboto', 'page', 'side' );//メタロボット設定

//デフォルトの投稿ページ
remove_meta_box( 'postcustom','post','normal' ); // カスタムフィールド
remove_meta_box( 'postexcerpt','post','normal' ); // 抜粋
//remove_meta_box( 'commentstatusdiv','post','normal' ); // ディスカッション
remove_meta_box( 'commentsdiv','post','normal' ); // コメント
remove_meta_box( 'trackbacksdiv','post','normal' ); // トラックバック
remove_meta_box( 'authordiv','post','normal' ); // 作成者
remove_meta_box( 'slugdiv','post','normal' ); // スラッグ
remove_meta_box( 'revisionsdiv','post','normal' ); // リビジョン
//remove_meta_box( 'tagsdiv-post_tag' , 'post' , 'side' ); // 投稿のタグ
//remove_post_type_support( 'post', 'title' ); // 投稿ページのタイトル
//remove_post_type_support( 'post', 'editor' ); // 投稿ページの本文欄
remove_post_type_support( 'post', 'author' ); // 投稿ページの作成者
//remove_post_type_support( 'post', 'thumbnail' ); // 投稿ページのアイキャッチ
remove_post_type_support( 'post', 'excerpt' ); // 投稿ページの抜粋
remove_post_type_support( 'post', 'trackbacks' ); // 投稿ページのトラックバック
remove_post_type_support( 'post', 'custom-fields' ); // 投稿ページのカスタムフィールド
//remove_post_type_support( 'post', 'comments' ); // 投稿ページのコメント
//remove_post_type_support( 'post', 'revisions' ); // 投稿ページのリビジョン
remove_post_type_support( 'post', 'page-attributes' ); // 投稿ページのページ属性
remove_post_type_support( 'post', 'post-formats' ); // 投稿ページの投稿フォーマット

remove_action( 'admin_menu', 'add_sngmeta_field' );
}
add_action( 'admin_menu', 'yuya_remove_admin_menu', 20 );
}

頭に「//」がついている場合は、コメントアウトされて非表示にならないので、上のコードで、例えば「コメント」も非表示にしたい場合は、
頭の

//remove_post_type_support( 'post', 'revisions' ); // 投稿ページのリビジョン

の//を消しておく。
 

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

if (!current_user_can('administrator')) {

}

を削除すればいい。

これでデフォルトであるものや、Sangoで追加されるメタボックスのオプションは非表示にできる。

その他、プラグインで追加されるものに関しては、別途非表示にしなきゃいけない。

その時指定する、ID(key)はページソースで class や ID から推測するか…

var_dump();

を使って調べる必要がある。