Moral Hazard!!

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

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; ?> //終了

Adhesiveプラグインのバグ

No Comment wordpress

wordpressで、特定の投稿をページの最初に持ってくるプラグイン、Adhesive。
しかし、有効にすると
next_posts_link
previous_posts_link
などの前後へのリンク表示が一切出なくなる。
タグのみならず、他のプラグインwp-pagenaviなどでも同様。

解決法。

wordpress2.7以降のバージョンでは、最初から投稿ページの「公開→公開状態」の部分にこの投稿を先頭に固定表示する機能がついている。
全力で
Adhesiveをアンインスコすれば解決。

WordPressの半角→全角自動修正を修正する修正の為の修正

No Comment wordpress

wordpressの本文にサンプルソースなどを記述すると、ご丁寧にもクォーテーションやダブルクォーテーションを自動的に全角に変更してくれる。
結果、そのスクリプトをコピペして使ってもエラーが出る。

修正方法1・プラグインを入れる。

Disable wptexturize

上記サイトからダウンロードし、解凍、pluginフォルダに突っ込みアップロード、管理画面で有効にするだけ。便利。
FCKEditor使用時にエラーが出るという話。

方法2・formatting.phpを編集

$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
の先頭行に // を入れてコメントアウト。

wp-includes/formatting.phpの69行目(ver2.8の場合ver2.7では60行目)を直接編集する。
※勿論Wordpressのバージョンアップ毎に修正が必要。

出典・EC-CUBE-LABO様テラダス様Utter Ramblings様