SyntaxHighlighter Evolvedのインストール


記事のコード部分に色をつけれる、WordPressのプラグイン「SyntaxHighlighter Evolved」をインストールしたので、使い方とカスタマイズについて残しておきます。

1.使い方

HTMLコードを載せたい場合は、コードを[html]と[/html]でくくります。
そうすると下記の用に表示されます。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>テスト</title>
</head>
<body>
テスト
</body>
</html>

他にも、PHPなどの各種プログラム言語や、css、単なるテキストの場合のplainなど多数用意されています。
対応しているコード一覧

2.カスタマイズ

1行ずつ交互に背景色を変える

まずは、変えたいテーマのcssを開きます。
cssは「wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/」以下にあります。
「Default」のテーマを使用している場合は、「shThemeDefault.css」となります。
バージョンによって、行は変わってくるでしょうが、私がインストールしたバージョンでは20行目からでした。

元のcss

.syntaxhighlighter .line.alt1 {
  background-color: white !important;
}
.syntaxhighlighter .line.alt2 {
  background-color: white !important;
}

 

変更後のcss

.syntaxhighlighter .line.alt1 {
  background-color: #ffffff !important;
}
.syntaxhighlighter .line.alt2 {
  background-color: #f3f3f3 !important;
}

21行目は「white」のままでもよいのですが、24行目と比較しやすいように「#ffffff」に書き換えています。


ワードプレスの投稿内容を一括置換


別のブログですが、もともとサクラのドメインで書いていたのですが、最近独自ドメインを取りました。
その際に、投稿内容のドメイン部分を書き換えるのにMySQLのREPLACE関数が便利でした。

一つ一つの記事内で使用しいるURLを編集画面から変更していると非常に手間が掛かりますが、REPLACE関数を使用するとSQL文1つで終わります。

PHPMyAdminにアクセスして、ワードプレスで使用しているデータベースを選択後、SQLタブでSQL文を1つ実行するだけです。

UPDATE `wp_posts` SET post_content=REPLACE (post_content,”http://hoge.sakura.ne.jp”,”http://hoge.net”);

 

wp_posts:投稿記事や固定ベージ、リビジョンなどが格納されているテーブルです
post_content:本文が格納されているカラムです

REPLACE (カラム名,”検索文字列”,”置換文字列”)
post_content 内の http://hoge.sakura.ne.jp を http://hoge.net に置換します。

この一文で、固定ページも含めた全ての投稿で指定している、ドメイン名の書き換えが終わります。

ただ、検索文字列の指定などが間違っていると全ての記事が間違った内容で書き換えられてしまうため、大変危険です。
実行前には一度テストをしてみることをオススメします。

例えば、あらかじめテストしたい投稿記事を一つ決め、そのID(番号)を調べます。

IDを調べる方法ですが、主に二通りあります。

  • 投稿の編集画面のパーマリンク(記事のURL)内の数字が、その記事のIDです
  • PHPMyAdminを開き、ワードプレスで使用しているデータベースを選び、wp_postsテーブルを表示して、テストしたいIDを選びます

IDが分かったら、先ほどのSQL文の後ろに条件指定「where ID=x」を追加します。

UPDATE `wp_posts` SET post_content=REPLACE (post_content,”http://hoge.sakura.ne.jp”,”http://hoge.net”) where ID=x;

 

条件指定を追加することで、IDが「x」の値のレコードだけを置換します。

これで、置換後の投稿記事を確認して、特に問題がなければ「where ID=x」を外して、全レコードに対して置換を実行します。