このプラグインは、WordPressのビジュアルエディターからHTMLテンプレートを挿入するプラグインです。
このプラグインを使用すると、プレスリリースや製品情報などの定形フォーマットの記事やページを作成する際にとても楽ができます。
詳細は以下のページでどうぞ。
このプラグインは、WordPressのビジュアルエディターからHTMLテンプレートを挿入するプラグインです。
このプラグインを使用すると、プレスリリースや製品情報などの定形フォーマットの記事やページを作成する際にとても楽ができます。
詳細は以下のページでどうぞ。
本サイトで配布しているWordPressプラグインEnhancing CSSを使用するとWordPressに外部スタイルシートを適用することが可能ですが、実際にスタイルを適用するには若干のコツが必要です。
CSS内に記述されたスタイルには詳細度による優先順位という概念があり、スタイル指定が重複した場合は、この詳細度によって適用されるかどうかが決定されます。
詳細度に関する詳細は以下のサイトをどうぞ。
これらを正しく理解すると、ほとんどのケースで外部スタイルシートからスタイルを変更可能です。
スタイルシートでは、!important という記述を入れることで特定のスタイルを優先させることが可能です。
div {
font-size: 12px !important;
}
これを上手く利用すれば、外部スタイルシートを追加することによるスタイルの変更がやや簡単になりますが、多用しすぎるとメンテナンス性が悪くなりますので要注意です。
詳細度による優先順位が同じであったり、!importantルールが使用されていない要素に対するCSSは、あとから書いたものや読み込んだものが優先して適用されます。
Firefoxの拡張機能「Web Developper」では、マウスオーバーした要素のスタイルがどのCSSからどのように指定されているかを簡単に調べることが可能です。
めっちゃハマったのでメモ。
これはマニュアルにも記載されていないみたい。
もともと別のサーバーで動作していたphpスクリプトを別のサーバーに移行した際に、以下のような不具合に遭遇した。
<?php $tmp = '日本語'; $tmp = escapeshellarg($tmp); echo $tmp; // $tmpの中身がカラ!? ?>
要はescapeshellarg()に日本語を渡すと値がカラ(シングルクォートのみ)になるということ。
いろいろ調べた結果、どうやらescapeshellarg()は、OS側の環境変数LANGの値によって挙動が変わるらしい。
今回はインストール直後の某VPSに移行したばかりだったのでLANGが設定してなかった。
そこで、/etc/sysconfig/i18nに以下のような記述を追加したら正常に動作した。
LANG=ja_JP.UTF-8
無効なマルチバイト文字列は処理しないということらしい。
なるほど、かしこい!
本サイトで配布している以下の二つのプラグインのバグを修正しました。
WordPress を専用ディレクトリに配置する設定を行っているときに、ただしくCSSやJavaScriptが添付されない不具合を修正しました。
@jhypno 様、不具合の原因究明にお付き合いいただいて、ありがとうございました。
WordPressに外部JavaScriptを添付するプラグインEnhancing JavaScriptをアップデートしました。
更新内容は以下のとおりです。
先程アップデートしたWordPressプラグインで実装したコードの一部をご紹介。
以下で紹介する関数はPHPで条件付きGET(Conditional GET)に対応するための関数です。
どういうものかというと、ブラウザからリクエストがあった際に、最終更新日(Last-Modified)をレスポンスヘッダでおくると、そのブラウザは次回以降のアクセスの際に「あの日以降更新した?」と聞いてくるので、更新してなかったときには「まだしてないよ」とだけ返す(コンテンツは返さない)仕組みのことです。
function conditional_get($time = 0)
{
$last_modified = gmdate('D, d M Y H:i:s T', $time);
$etag = md5($last_modified);
header('Last-Modified: '.$last_modified);
header('ETag: "'.$etag.'"');
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
if ($_SERVER['HTTP_IF_MODIFIED_SINCE'] == $last_modified) {
header('HTTP/1.1 304 Not Modified');
exit;
}
}
if (isset($_SERVER['HTTP_IF_NONE_MATCH'])) {
if (preg_match("/{$etag}/", $_SERVER['HTTP_IF_NONE_MATCH'])) {
header('HTTP/1.1 304 Not Modified');
exit;
}
}
}
あらかじめ、コンテンツの最終更新日を取得して、conditional_get() に渡すと、必要な処理をいろいろやってくれます。
そのあとで、実際のコンテンツを取得して出力です。
実際には、$time以降の更新がない場合は、conditional_get() 内で終了します。
$time = get_modified() // コンテンツの更新日時をローカルタイムスタンプで取得 conditional_get($time); $html = get_contents(); // コンテンツを取得 echo $html;
conditioal_get() の前にコンテンツを取得しちゃうと意味が半減することがあるかもしれないので注意。
WordPressに外部CSSを添付するプラグインの”Enhancing CSS”をアップデートしました。
CSSのデータを出力する際に、”Last-Modified”ヘッダを出力し、クライアントからの”If-Modified-Since”または”If-None-Match”に条件が一致した場合に”HTTP/1.1 304 Not Modified”を返します。
これによりブラウザ側でCSSがキャッシュされパフォーマンスが向上します。
保存した外部CSSをもとに、子テーマを作成するためのstyle.cssがダウンロード出来るようになりました。
ダウンロード用のstyle.cssには親テーマのstyle.cssへのリンクや、子テーマとして動作するための最低限のコメントが、自動的に挿入されます。
子テーマ作成に関する詳細は以下のページを御覧ください。

前回の記事でWordPressのTwenty TenテーマのJavaScriptおよびCSSを使ったカスタマイズの事例についてご紹介しましたが、今回は、同じ Twenty Ten テーマのヘッダー画像の高さを変更する方法について。
今回は、とても簡単なものではありますが、PHPがからみます。

Twenty Tenテーマでは、とても親切なことに、このヘッダー画像のサイズを変更するためのフィルターフックが用意されています。
そこで、それを利用して画像サイズを変更するプラグインを作成するか、子テーマのfunctions.phpに書き込みます。
以下のソースのうち300の部分は画像の高さです。
お好きな数字に変更してください。
<?php
/*
Plugin Name: twentyten_header_image_height
*/
add_filter('twentyten_header_image_height', 'twentyten_header_image_height');
function twentyten_header_image_height($height){
return 300;
}
?>
以上のソースを、以下のいずれかの方法で適用してください。
ちなみに、横幅を変更する場合は、height の部分を width に変更してください。

画像のサイズ部分が書き換わります。

それにしても、Twenty Ten テーマってほんとうに良く出来てます。
子テーマ用のフレームワークとして十分に機能する気がします。
このサイトで配布しているEnhancing CSSプラグインとEnhancing JSプラグインは、それぞれ外部CSSと外部JavaScriptをWordPressに添付するプラグインです。
今回の記事では、これらのプラグインを使ってTwenty Tenテーマをカスタマイズする方法をご紹介します。
以下の画像はTwenty TenテーマにEnhancing CSS及びEnhancing JavaScriptを使用して、外部CSS及びJavaScriptでカスタマイズした事例です。
CSSとJavaScript以外はメニューの設定も含めて全て同じです。もちろんテーマファイルの書き換えも一切行っていません。
以下のサンプルを試す前にプラグインをインストールしてください。
カスタマイズ例ではメニューの位置が画像の上部に変更されています。
この修正は、CSSでも可能ですが、JavaScriptにて行ないました。
コピー&ペーストするソース
function init(){
var oImg = $('branding').getElementsByTagName('IMG')[0];
if (document.getElementsByTagName('BODY')[0].className.indexOf('home') >= 0) {
$('masthead').appendChild(oImg);
} else {
$('branding').removeChild(oImg);
}
}
Event.observe(window, 'load', init);
#site-title a
{
background-image: url(/wp-content/uploads/2010/09/buttonw-grey-8bit.png);
background-position: left top;
background-repeat: no-repeat;
display: block;
width: 178px;
height: 58px;
text-indent: -9999px;
overflow: hidden;
}
#site-description
{
text-align: right;
}
サイトを確認してください。
もし、何も表示されていなければ画像のURLに間違いがあります。
また、ロゴ画像の上下左右が欠けている場合は、横幅と高さを調べて上記のソースと差し替えてください。
以下のソースを”外観” -> “拡張CSS” のCSSエディター内に追加してください。
/* メニュー全体の背景の設定 */
#access
{
background-color: #ffffff;
background-image: url(/wp-content/uploads/2010/09/menu.png);
background-repeat: repeat-x;
background-position: left top;
color: #000000;
border-bottom: 1px solid #cccccc;
margin-bottom: 5px;
padding: 5px 0;
}
/* メニューのリンク文字列 */
#access a
{
color: #000000;
}
/* メニューの項目別の背景 */
#access li > a
{
background-image: url(/wp-content/uploads/2010/09/menu-items.png);
width: 150px;
height: 40px;
padding: 0px;
text-align: center;
margin-right: 3px;
}
/* メニューの項目別の背景(マウスオーバー及びカレントページ) */
#access ul li.current_page_item > a,
#access li:hover > a
{
background-image: url(/wp-content/uploads/2010/09/menu-items.png);
background-position: left bottom;
color: #666666;
}
/* ポップアップメニューを無効にする */
#access ul li:hover > ul
{
display: none;
}
すごく、ざっとした説明で恐縮ですが、以上のような手順で、JavaScriptによるHTMLの書き換え+CSSというテクニックを使用すれば、複雑なテンプレートタグを使用しなくても十分に実用的なサイトが作れることがおわかりいただければ幸いです。
参考までにサンプルで使用した画像をおいておきますので、ご利用いただければ上記の事例が簡単に再現できると思います。
WordPress上で外部JavaScriptを取り扱うためのプラグインをリリースしました。
firegoby » WordPressに外部JavaScriptを追加するプラグイン
このプラグインを使用するとビジュアル エディターでJavaScriptを編集したり、WordPressにデフォルトで組み込まれているprototype.jsやjqueryなどのJavaScriptフレームワークを簡単にテーマに組み込むことが可能です。

