Moral Hazard!!

ドラマーが音楽やホームページやガラクタを作るよ。

wordpressをiPhone対応させるプラグインWP touch

No Comment wordpress,,,

寝ても覚めてもiPhone、猫も杓子もiPhoneでさすがに持ってないとやばいだろう的風潮になってきていますが。
最近の口癖は「マジ氏ねiPhone」です。
ホームページをiPhone対応にするの大変(持ってないし)

iPhoneに搭載されているブラウザ(safari iPhone版)には色んな制限があって、パソコン版safariでは表示されるflashやjavascriptも使えないことが多いです。
appleがflashに対応させないのは、セキリュティに配慮しているという理由もあるらしいが、それでも不便・・・。
確かに昨年末猛威を振るったガンブラーウイルスはFlashやPDF Readerのセキュリティーホールを突いたものですし。

で、早速wordpressをiPhopneに対応させるプラグインがこちら。

WP touch

デザイン自体をiPhone用にカスタマイズしてしまうので、パソコンで作ったサイトデザインはほぼ意味をなさなくなりますが、iPhoneユーザーからは
「画面をいちいち拡大させないで良い!」
と好評です。なんてユーザーフレンドリー。(ユーザーフレンドリーって言いたいだけ)
(現状ではlightboxで拡大した画像を縮小出来ないみたい。調べ中)

さて、wordpress用プラグインを探す前に、普通のサイトをチェックする用のiPhoneエミュレーターを探していたんですが、

iBBDemo

というソフトがありました。
なんかPC版safariがインストールされていることが前提らしい。
safari3とsafari4とでダウンロードするところが若干違うので注意。
(英語で説明書いてるけど、safari4版は適当なフォルダに入った状態で起動させれば、dllが作られる)

このソフトは基本的にPC版safariを使っているので、実際には(2010年1月時点)iPhoneで表示されないFlashやjavascriptも表示されちゃう。
なので、cssや画面サイズをチェックするくらいに留まりそうです。

あと、こちらのサイトでもiPhoneエミュレーターがいくつか。

やっぱりiPhone買わないと駄目かなぁ・・・。かっこいいもんなぁ・・・。
日本のメーカーもっと頑張ってくれよう・・・。

(こないだビックカメラ行ったら、日本製パソコンや携帯が軒並みダサくて絶望した)

使用中のwordpress pluginと導入時の留意点

3 Comments wordpress,

使用中のプラグインをつらつらと。
Akismet、All in One SEO Pack、Contact Form 7、Google XML Sitemaps、Ktai Entry、Ktai Style、WP Multibyte Patchなど、ほぼ常識的に使われるものは割愛。
使っているのは特にインストールに難があるものは無いと思う。

基本リンク先のファイルをダウンロードして、プラグイン→新規追加→アップロードでzipファイルをアップロードしてインストールするだけ。
あと、wordpressのプラグインを山盛りにすると色々ぶつかり出すので、注意と対策を書き留める。

wp-lightpop

現在使用。詳細設定でrelの表示を編集できるのと、ポップアップ時の背景を選択できるところが良い。
Head Cleanerと同じ作者なので、どうせ使うなら同じ方が作っているモノの方が相性がよさそうだ。

PHP Speedy WP

lightbox系のプラグインなどを入れるととたんに重たくなるwordpress。
当サイトも例外ではなく、少しでも動作を軽くするためにキャッシュ系のプラグインを入れることに。
有名どころで"wp-super-cache"があるが、当環境では動かなかった上に、インストールされるadvance-cache.phpがどのftpソフトからも削除出来ないという事態に。
サーバーに問い合わせたら「そんなファイル無いけど?」と言われるが、リモート側に確かに見える。うぜぇ・・・。
このPHP Speedy WPは効果に疑問というブログをいくつか見かけたが、当環境では特に設定で手間取ることなく、早くなった「気」がするので不具合が出なければ入れておくことにした。
※2010/01/28追記 デフォルトではページ下部に広告が出るので、邪魔ならオプションで消すべし。

Advanced Columns

wordpressをいじる時にIDを見ることが多いが、何故かwordpressはそのIDが見難い。というか表示されない。
それを編集画面などに表示させるプラグイン。ソースは短いのでfunctions.phpに書いてしまってもいいかもしれない。

Disable wptexturize

wordpressが勝手に半角文字を全角に変更したりするのを止めさせるプラグイン。
これも作者様がソースを書いてるので、functions.phpに入れておいても良いっぽい。

Head Cleaner

wordpressの汚いヘッダを整理整頓してくれ、javascriptやcssも圧縮(gzipにも出来る)してキャッシュしてくれるスグレモノ。
※Lightbox Galleryが効かなくなる模様。WP lightbox 2は最初は効いていたが、ある日動作しなくなった。
ので試しに作者のをかもと氏のlightboxプラグイン「wp-lightpop」を試したところ、設定が細かく出来るのと、ポップアップ背景も素敵なものが選択可能だったのでそちらを使用。

SyntaxHighlighter Evolved

記事中にhtml,php,jsソースなどを書くときに、ソースコードをハイライト表示してくれるプラグイン。
同じタイプのものにSyntax Highlighter for WordPressがあるが、Lightbox Galleryと一緒にすると、二重に動作して画像がダブる。

Horizontal Calendar

横一列にカレンダーが表示される。

My Link Order

リンクの並び順を変えたり、ウィジェットに入れたり出来る。
数字が綺麗に羅列しているのを見ると興奮する人向け。

TinyMCE Advanced

記事を書く時に文字色やサイズをアイコンで選べるようになる。
こちらで日本語版を配布して下さっている。

youtube貼り付け

Viper's Video Quicktagsを使っていたが、専用ショートコードを埋め込まないといけないので後々メンテが面倒なのと、youtube不使用ページでもjavascriptを読み込み、(2010年1月30日時点)非常に重いので他のプラグインを探す。
Noembedderは使用ページに赤文字のエラーが出るので却下、現在Embed YouTube Videosを使用。

↓以下、当環境で挙動が不審になったもの。

Lightbox GalleryとWP lightbox 2
両方使用していて同一ページにギャラリーと普通の画像が混在するときにWP lightbox 2がダブって表示される。
※ギャラリー自体がktai_styleでも上手く表示されないので、一個ずつ画像をアップロードする事で回避。

Custom Query String Reloaded
カテゴリやシングルページごとにページの表示件数を設定できるプラグイン。
プラグインを停止すると、設定が消去される。
※別に不具合ではないが、表示が重いなどでプラグインを止める時は再開時に指定しなおすよう注意。

wordpressでFlashを表示

No Comment wordpress

やりたい事・・・wordpressのトップページにFlashを表示したいけど、Another HTML-lint gatewayなどの文法チェックで怒られたくない。

ファンクションを記述する外部javascript(ここではfunction.js)を作り、以下を記述する。

function topFlash()
{document.write('ここにFlashのobjectタグとembedタグを改行せずに入れる。¥n');}

ただ単に、javascriptの中にhtml-lintで怒られるembedタグを逃がしているだけ。
以下例。
(FlashのID、幅、高さ、背景色、アドレスなどは適宜変更。wmode="transparent" は背景を透過させたい時に使用。)

/*トップページのフラッシュ呼び出し*/
function topFlash() {document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="幅" height="高さ" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="Flashのアドレス" /><param name="quality" value="high" /><param name="bgcolor" value="背景の色" /><param name="wmode" value="transparent" /><param name="src" value="Flashのアドレス" /><embed type="application/x-shockwave-flash" width="幅" height="高さ" src="Flashのアドレス" wmode="transparent" bgcolor="背景の色" quality="high" data="Flashのアドレス"></embed></object>¥n');
}

※flashで書き出すときに吐き出されるタグをコピペする時に忘れがちだが、document.write(' ')の中は'ではなく"で統一しないと構文エラーになる。 document.write(" ")にすると中は'で統一しないといけない。

※document.writeの中では改行しない。
改行したい場合は行末に「\」でエスケープする事で、見かけ上は改行したように見える。
以下例。

document.write('\
abcdefg\
こんな感じで\
改行っぽく\
出来ます');

※どちらにせよdocument.writeの中では改行出来ないけど、html内でjavascriptを改行した場合、wordpressではFlashが表示されない事があるっぽい。

そして表示したいページの<head></head>内に、

<script src="function.jsの場所" type="text/javascript"></script> 

を入れる。 そしてそしてbody内の表示したい場所に

 
<script type="text/javascript">topFlash();</script>

とfunction関数を書く。

ちなみにwordpressでトップページにはFlash1(function名)を表示させて、他のページにはFlash2を同じ場所に表示させたい場合は、function.jsにFlash1とFlash2のタグを入れた後、header.phpに、

 
<?php if (is_home() && !is_paged()) { //indexページであり他のページで無い時は以下を表示 ?>
<script type="text/javascript">topFlash();</script>
<?php }else{ //他のページは以下を表示 ?>
<script type="text/javascript">topFlashStop();</script>
<?php } ?>

を入れる。

ソース
findxfine様 http://www.findxfine.com/wordpress/132.html
WordPress & Business メモ様 http://www.bizmemowp.com/wordpress-biz195

特定のページにのみ表示、非表示を切り替える。

No Comment wordpress

やりたいこと・・・トップページだけ文字やコンテンツを表示して、他のページでは見えないようにする。

<?php if (is_home()) { ?>
トップページのみ表示する部分
<?php }else{ ?>
トップページ以外のページで表示する部分
<?php } ?>

特定のページでだけ表示したくない場合は

<?php if (!is_home()) { ?>
トップページのみ表示しない部分
<?php } ?>

indexページの最新の記事だけ入力フォームを出力する。

No Comment wordpress

インデックスページ(index.php)の最新記事にのみ、コメント入力欄を表示させたい。
その他の記事はコメントのみで入力欄は要らない。

コメントページ2(comment.phpを複製してcomment2.phpに)を作る。
comment2.phpから入力フォームを削除する。
$loopcounterを使って記事のループ回数をカウントし、二つのコメントページに振り分ける。

<?php $loopcounter = 1; ?> //ループ前に$loopcounterを1にする
<?php if(have_posts()):while(have_posts()):the_post(); ?>//記事のループ開始
<?php $withcomments = true; ?>//インデックスページにcomment.phpを読み込むときはこれが必要
<?php if ($loopcounter <= 1) : ?>//$loopcounterが1かそれ以上かで分岐させる
<?php comments_template(); ?>//$loopcounterが1の時はコメントページを呼び出す
<? else : ?> //2以上だった場合↓
<?php comments_template('/comments2.php'); ?>//コメントページ2を呼び出す
<?php endif; ?>//$loopcounterの処理終了
<?php $loopcounter++; ?>//$loopcounterに1を加える
<?php endwhile; else: ?>//記事のループする。もし記事が全く無いときは↓
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>//記事が全く無いときのメッセージ
<?php endif; ?> //終了