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

ビジュアルエディター見た目を実際の投稿の色や見た目と揃える方法 WordPress BuddyPressカスタマイズメモ SANGOテンプレート

WordPressのビジュアルエディターで、H2やH3のをつけると、実際のCSSと違うようになるので、それを揃える方法

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが投稿するようになると、投稿画面のビジュアルエディターの見た目と、サイトフロントの見た目を揃えておいた方がいい。

別のCSSを用意してそれをビジュアルエディター用のCSSとして読み込ませる必要がある。
 

投稿画面のプレビュー用の別のCSSを用意する

SANGOのテーマの場合は
library/css/editor-style.css
に投稿画面用のCSSが入っている。

それを子テーマに別のCSSを入れて読み込ませてみる。

//スタイルとビジュアルエディターの見た目を揃える
function correct_visual() {
add_editor_style(get_stylesheet_directory_uri() . '/library/css/editor-style.css');
}
add_action('admin_init', 'correct_visual', 20);
get_stylesheet_directory_uri()

とパスを書いておくことによって、子テーマのURLが取得されるのでこれでOK。

例えば、
「オレンジ見出し」を実際のページで青くした場合、オレンジのプレビューになるのに、実際のページでは青。

editor-style.css の中に

/*オレンジ見出し*/
body#tinymce.wp-editor .hh8 {
  padding: 0.5em;
  color: #494949;
  background: #fffaf4;
  border-left: solid 5px #ffaf58;
}

この color や、background の色を変えればいい。

プラグインを使わずビジュアルエディターの文字修飾(TinyMCE)から不要ボタンを削除する方法 WordPress BuddyPressカスタマイズメモ SANGOテンプレート

ビジュアルエディターで、不要な文字修飾ボタンを削除する

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

WordPressには mce_buttons というフィルターフックが用意されている。

add_filter( 'mce_buttons', 'remove_mce_buttons' );

これが、1行目にあるボタンを削除する時の記述。

add_filter( 'mce_buttons_3', 'add_mce_buttons_3' );

こっちは、3行目にボタンを追加する時の記述。

removeadd削除追加
後ろに、 _2 _3 とかをつけて、2行目、3行目を操作する。
 

functions.phpへの記述

add_filter( 'mce_buttons', 'remove_mce_buttons' );
function remove_mce_buttons( $buttons ) {
  $remove = array(
    'formatselect', // フォーマット
    'bold',         // 太字
    'italic',       // イタリック
    'bullist',      // 番号なしリスト
    'numlist',      // 番号付きリスト
    'blockquote',   // 引用
    'alignleft',    // 左寄せ
    'aligncenter',  // 中央揃え
    'alignright',   // 右寄せ
    'link',         // リンクの挿入/編集
    'unlink',       // リンクの削除
    'wp_more',      // 「続きを読む」タグを挿入
    'wp_adv',       // ツールバー切り替え
    'dfw'           // 集中執筆モード
  );
  return array_diff( $buttons, $remove );
}

add_filter( 'mce_buttons_2', 'remove_mce_buttons_2' );
function remove_mce_buttons_2( $buttons ) {
  $remove = array(
    'strikethrough', // 打ち消し
    'hr',            // 横ライン
    'forecolor',     // テキスト色
    'pastetext',     // テキストとしてペースト
    'removeformat',  // 書式設定をクリア
    'charmap',       // 特殊文字
    'outdent',       // インデントを減らす
    'indent',        // インデントを増やす
    'undo',          // 取り消し
    'redo',          // やり直し
    'wp_help'        // キーボードショートカット
  );
  return array_diff( $buttons, $remove );
}

これで全て削除になる。残したい部分だけ、消しておけばOK。

WordPressでデータベース接続確立エラーになり、Not enough memory for blob データベースの修復(Repair)もできない時の対処法

データベースエラーになった時の状況確認

データベース接続確率エラーとWordpressで表示される時の状況確認。

・インストール後やサーバー移転後ずっとエラーなのか、ある時急にエラーになったのか
→ 最初からの場合は、データベース名、ホスト名、ユーザー名、パスワード、プリフィックスなど何かしらが間違えている可能性が高い。
まずはwp-config.phpの中のデータベースの設定などを確認。

ある時を境に、急にエラーになった場合は下記確認。

・サーバー側のエラーなのか、データベースのテーブルが壊れているのか
→ サーバーがダウンしている、メンテナンス中などの場合もこのエラーが表示される場合がある。緊急でないなら数時間~1日待ってみる。
国内サーバーなら、ホスティング会社のWebサイトなどに障害状況が掲載される場合が多いのでチェック。
海外サーバーなら、カスタマーサポートにメールかチャットで連絡してみる。

データベースの異常を確認するには、phpMyAdminにログインして、テーブルが「in use」になっているかどうかを確認すれば、データベースが壊れているかはすぐに分かる。

 

phpMyAdminを使いたくない(使い方が分からない)人は?

蛇足だが、phpMyAdminを使いたくない人は、

wp-config.phpのどこかに

define( 'WP_ALLOW_REPAIR', true );

と記述してから

ブログURL/wp-admin/ にアクセスしてみてWordPressからDBの修復を試みる事ができる。

これで修復できればいいが、できない場合は下記へ。
 

phpMyAdminからのデータベース修復

サーバーの管理画面などからphpMyAdminへログイン。

該当のデータベースを開くと

テーブルで「in use」となっているものがあり、「in use」は、破損を意味している。
今回は、wp_options が死んでいる。
あと他にも、wp_commentmeta もよく死ぬ。

壊れているテーブルの左のチェックボックスを選択してから上のメニューで「Repair table」を選ぶ。

日本語版だったら「テーブルの修復」かな?

上に緑で「Your SQL query has been executed successfully」って出たので、やった!成功だ!と思いきやエラーでした。

「Not enough memory for blob at 64384 (need 16862691..」

need xxxxx の部分の数字が途方もなく大きいので、これはもうまともな手法では直せないなと理解。

このエラーが出た時は 修復(repair)では直せない。

ちなみに、シェルアクセスでコマンドを打っても同じ、当然WordPressのdefine( ‘WP_ALLOW_REPAIR’, true );で、管理画面からリペアを試みても無理だ。
 

データベースのバックアップの復元、それが無いならサーバー管理会社にお願いしてリストア(ロールバック)してもらう。

自分で定期的なバックアップをとっていればそれをリストアしてもいい。

データベースのバックアップなんかしてねーって場合は、サーバーの運営会社(ホスティング会社)に連絡して最新のデータベースのバックアップへ復元してもらうしかない。