- 2008-11-10 (月) 17:44
- WordPress
IEやOperaでWordPressのレイアウトだけ崩れる。
なぜか?
それはサイドバーのパーツにテキストウィジェットを使ってたから。
テキストウィジェットを使うと余計なタグでネストされちゃって、それでレイアウトが崩れる。
じゃあテキストウィジェットを使わずに、ウィジェットそのものを新しく作ればOK!
と思ってGoogle先生にいろいろ聞いたんです。
WordPress ウィジェット 追加
WordPress ウィジェット 作成
全然教えてくれない…orz
僕の聞き方が悪いのかしらん。
教えてくれるのは、2.2以前のバージョンでのウィジェット機能の追加方法、ウィジェットの管理画面で使いたいウィジェットの「追加」をクリック、ウィジェット領域の追加、テーマの作成、などなど…。
それらしいのはあっても英語のサイトで全く読めない。
それらしきサイトをいくつか読み漁り、PHPの知識がないまま取り組んでみた。
使ってるテーマのフォルダの中にあるfunctions.phpを開いて、
(もちろんブラウザから、ダッシュボード→デザイン→テーマエディタ→テーマのための関数、で修正でも可)
一番最後の
?>
の前に
register_sidebar_widget('ウィジェットの名前', 'ウィジェットの関数名');
function ウィジェットの関数名(){
echo'ウィジェットで表示したい内容をhtmlで記述';
}
を追加。
functions.phpをアップロード。
ウィジェットの管理画面で新しいウィジェットが増えてるのを確認、そして追加。
たぶんこれでOK。
例えば今回追加したtwitterのつぶやきをウィジェットにするなら
register_sidebar_widget('twitter', 'widget_twitter');
function widget_twitter(){
echo'<dt id="twitter_div">Twitter Updates</dt>';
echo'<dd>';
echo'<ul id="twitter_update_list"></ul>';
echo'<script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script>';
echo'<script type="text/javascript" src="http://twitter.com/statuses/user_timeline/●●●●.json?callback=twitterCallback2&count=○○"></script>';
echo'<p style="text-align:right;"><a href="http://twitter.com/●●●●">フォロー</a></p>';
echo'</dd>';
}
こんな感じ。
●●●●はユーザー名、○○は表示させる件数ね。
<dd>でネストしたりするのはテーマによるのかな?
ま、適宜変更してください。
あと、echoは何行もズラズラと書かずに1行でまとめてもたぶん大丈夫。
(echoで表示させるのってどうなのかしらん…でもPHPわかんないし)
注意するのはJavaScriptのコードでコメントアウトしてる場合。
例えばAdsenceの下記のようなやつね。
<script type="text/javascript"><!--
google_ad_client = "pub-●●●●";
google_ad_slot = "●●●●";
google_ad_width = 200;
google_ad_height = 200;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
echoで表示させるとき、行を分けても1行で表示されるので、<!——から//——>の中身が本当にコメントになっちゃいます。
気を付けましょう。
もっと良い方法があるのかもしれないけど、いまはこれが精一杯。
やっぱりPHPを勉強しなくちゃだねぇ…。
って僕は不動産屋なんですが。
- Newer: PHPを覚えないと、と真剣に悩む不動産屋
- Older: WordPressすごい