Articles

アクセス先でテーマを切り替えるには

WordPressにアクセスするときに、http://example/xxx/と指定することによりxxxで指定したテーマで表示できるようにしたいと思います。

まず、URLについてですが、通常はサイトアドレス(URL)に指定したアドレスしか表示することが出来ませんでした。そこで、アクセス時にリクエストされたURLを調べて、サイトアドレスを書き換えてしまいます。編集するファイルは、wp-config.phpです。

switch(substr($_SERVER[“REQUEST_URI”],0,4)){
case ‘/xx/’:
define(‘WP_HOME’,’https://’ . $_SERVER[“HTTP_HOST”] . ‘/xx’);
break;
case ‘/yy/’:
define(‘WP_HOME’,’https://’ . $_SERVER[“HTTP_HOST”] . ‘/yy’);
break;
}

こんな感じで、適当に2文字のサフィックスで対応することにしました。想定外のアクセスは通常サイトに飛ばすことにします。ポイントはWP_HOMEの方を書き換えることです。あとは、サイトのホームページとして WordPress のインストールディレクトリとは異なる場所を設定する場合に書いてある通り、サブディレクトリを作り、index.phpを修正します。

続いて、テーマの切り替え部分を作ることにします。プラグインを作ってしまうのがオススメらしいので、wp-content/plugins/フォルダの中に、my_theme_change.phpを作成し、以下の内容を記載します。caseの内容はwp-config.phpで作成した内容を、テーマ名はwp-content/themes/フォルダ内にあるテーマのフォルダ名を指定します。

<?php
function my_theme_change($template) {
switch(substr(home_url(),-3)){
case ‘/xx’:
return ‘テーマ名1’;
case ‘/yy’:
return ‘テーマ名2’;
}
return $template;
}
add_filter(‘template’, ‘my_theme_change’);
add_filter(‘stylesheet’, ‘my_theme_change’);
?>

これで、アドレスの最後にxxやyyを付け加えることで、お好みのテーマで表示することができます。

って、書いてありましたが。本当ですか?
サイドパネルにウィジェットが表示されないのですが...。あと、メニューも表示されません。どうやら、有効かしているテーマしかサイドパネルなどの設定が読み込めない様な感じです。色々調べてみましたが、わかりませんでした。ほかの人はサイドパネルやメニューを使用していないのでしょうか。方法が分かればなんとかしたいところです。

ソースコードを綺麗に表示する

記事内にソースコードを貼り付けるには、Crayon Syntax Highlighterが良く使用されている様なので、これを追加します。

プラグインから、Crayon Syntax Highlighterを検索して、インストール&有効化。

早速使ってみる。
テキストを選択して、crayonをクリックする。

適当に入力して、addをクリックすればOK。ビジュアルに戻ってくると、

こんな感じで表示できた。タブは入力できないのであきらめる。

Crayon Syntax Highlighter の設定を変更

まずは、日本語にする。
wp-content/languages/pluginsフォルダ内から以下の2ファイルを消せば良いらしい。
crayon-syntax-highlighter-ja.mo
crayon-syntax-highlighter-ja.po

マウスカーソルでひょこひょこすると、鬱陶しいので、ツールバーを常に表示にしておく。

そして、記事内にソースを貼り付ける手段は「テキスト」を選択して追加する方法しか無いと思っていたら、ビジュアルの「<>」アイコンからも追加できるということが判明。
編集するときも、ソースの領域をクリックして、このアイコンをクリックすれば良いらしい。

Luxeritas 付属のシンタックスハイライター

Luxeritasを使用していて気がつかなかった事が。

標準でシンタックスハイライターの機能があることを。

[highlight_vbnet]
‘パラメータの指定
Private Sub AddSqlParameter(ByRef command As System.Data.SqlClient.SqlCommand, Name As String, Type As SqlDbType, Value As Object)
Dim param As System.Data.SqlClient.SqlParameter
param = command.CreateParameter()
param.Direction = ParameterDirection.Input
param.ParameterName = Name
param.SqlDbType = Type
param.Value = Value
command.Parameters.Add(param)
End Sub
[/highlight_vbnet]

こんな感じです。しかし、テーマを変えると表示されなくなるので、プラグイン版を使うことに。

行頭のスペースを残す

自動整形機能により、行頭のスペースが勝手に削除されてしまうようです。

TinyMCE Advanced プラグインをインストールして、

段落タグの保持
保存時に <p> と <br /> タグを削除せず、テキストエディタ上に表示する テキストエディターの自動補完を停止し、より高度なコーディングが可能です。 しかし、まれに予想できない振る舞いをするため、常用前に充分テストを行ってください。 なおテキストエディター内での改行は出力に含まれます。このため空の行や HTML タグ内の改行、複数の <br /> タグは使用しないでください。

の項目にチェックを入れるとスペースが残ります。

新エディタは使いにくい?

WordPressのアップデートをしたら、エディタが使いにくくなってしまいました。
どうやら無効すれば、従来のエディタに戻るとのこと。

functions.phpに以下のコードと追加すれば良いらしい。

うん、戻った。