Monthly Archives: 2月 2013

WordPress のカスタムフィールドで検索する時参考になったサイト

カスタムフィールドやカスタム投稿タイプを用いていると、キーワード検索する時も独自にクエリを作らないとうまくいかない。
そんな時に参考にするページは以下。

でも、これらを見ても、カスタム投稿タイプのタイトル文から一致するキーワードを検索する方法が載っていない。なぜなの?

ツイートツイート

WordPress のウィジェットに関する記述まとめ(途中)

Codex には「WordPress ウィジェット API」というページがあるがあまり詳しくない。

バージョン 2.8 からウィジェットの API が変わったそうで、このページからリンクされている記述を抜粋したのが以下

新ウィジェット API

WP_Widget は、ウィジェットプラグインを書くときの複雑さの多くを抽象化により解消するクラスです。特に複数利用できるウィジェットの作成に威力を発揮します。

  • 基本的には、WP_Widget を独自のクラスで拡張する。このクラスはコンストラクタおよび widget()、form()、update() の3つのメソッドから成る。
    • widget() – 実際のウィジェットのコンテンツを出力する
    • update() – 設定の保存を処理する
    • form() – 設定フォームを出力する
  • ウィジェットは register_widget() にそのウィジェットのクラスを渡すことによって登録する。
  • WP_Widget を使って書いた全てのウィジェットは複数のインスタンスを作成することが可能。
  • 設定
    • 古い単独インスタンスのウィジェットの設定は、WP_Widget に移植され、新しい複数設定保存の形式にアップグレードされる。これは単に、インスタンス ID をキーとする多次元配列の形式。
    • 古い単独インスタンスのウィジェットの設定はそのままで動作するはず。
    • もしカスタム設定の保存が必要な場合は、独自の et_settings() および save_settings() メソッドを提供できる。
  • WP_Widget ソースはこちらで見ることができます (詳細および使い方は phpdoc を参照): http://core.trac.wordpress.org/browser/trunk/wp-includes/widgets.php
  • 使い方の例はこちらで: http://core.trac.wordpress.org/browser/trunk/wp-includes/default-widgets.php
  • もし今までにウィジェットを作成した場合は、WP_Widget に移植し、改善のためのフィードバックを Trac Ticket 8441 に送ってください。
  • WP_Widget の基になった MultiWidget クラスに敬意を表します: http://blog.firetree.net/2008/11/30/wordpress-multi-widget/
  • 上記は Ryan Boren の wp-hackers への投稿から抽出した。

WordPress ウィジェット API も参照のこと。

 

 

 

ツイートツイート

WordPress で子テーマの CSS などを読み込ませたいときに注意すること。

WordPress で Javascript や CSS を記述したいときは header.php などを見ると wp_enqueue_style を使って記述されていると思う。

wp_enqueue_style( 'bootstrap',get_template_directory_uri().'/css/bootstrap.css','','','all');
wp_enqueue_style( 'bootstrap-responsive',get_template_directory_uri().'/css/bootstrap-responsive.css','','','all');
wp_enqueue_style( 'style',get_template_directory_uri().'/style.css','','','all');
wp_enqueue_style('prettyPhoto-css',get_template_directory_uri().'/css/prettyphoto.css','','','all');
wp_enqueue_style('custom-options',get_template_directory_uri().'/css/options.css','','','all');

この時、ファイルの頭に get_template_directory_uri() を付ければテーマのディレクトリパスが得られる。

さて、テーマをいじる際に定番なのが「子テーマ化」することだが、その場合、親テーマの header.php などはコピーした上でカスタマイズすることになる。で、注意するのが新たに独自の CSS や Javascript を追加する場合。
うっかりやってしまいがちなのが、以下のように wp_enqueue_style の行を単にコピペして、CSS ファイルの部分だけ書き換えたとき。

wp_enqueue_style('nincou',get_template_directory_uri().'/css/nincou.css','','','all');

このように、get_template_directory_uri() をそのまま使ってしまうと、CSS ファイルのディレクトリパスは親テーマのディレクトリパスになってしまう。もし、子テーマのディレクトリパスにしたいときは以下のように get_template_directory_uri() ではなく、 get_stylesheet_directory_uri() を使うと良い。

wp_enqueue_style('nincou',get_stylesheet_directory_uri().'/css/nincou.css','','','all');

参考サイト: http://ja.forums.wordpress.org/topic/11749 

ツイートツイート

ubuntu 12.04 で Git を使う

Windows7 がクラッシュしちゃって、修理出す暇もないから ubuntu 12.04 で何とか継続してるけど、やっぱ途中までやってたプロジェクトのリポジトリをどうにか ubuntu でも使えないかと色々調べたが・・・みんなコマンドベースで書いてあるので訳わかんないよーw

とりあえず、このサイトを参考に以下のコマンドを入力。

$ git config --global core.quotepath false
$ sudo apt-get install git-gui gitk

最初の行は日本語ファイル名を表示させるためのものらしい。
これはいいとして、次の行。これが何を意味するかは皆目分からないw。多分 git-gui と gitk をインストールしてる?のかなw
実行したら色々メッセージが出てきたけど、なにやら完了したみたい。なので git を動かしたいのだが・・・動かし方が分からないorz

「コマンドから動かす」なんて言うけど、コマンドを打つときは「端末」を機動してから入力するくらいしか分からない。
そしてその端末は「Dashホーム」から探すくらいしか。ところがだ! 時々「Dashホーム」から「端末」が消えるのはなんでなのだ?

ubuntu 使い始めて3週間ぐらい経つけど未だによく分からない
そうこうしてるうちに、なにやら Alt キーでコマンドが打てる状態になるらしいことが分かった。ふぅ・・・

で、ようやく gitk や git gui を起動できたが、リポジトリが表示されたりされなかったり、終いには gitk や git gui さえ起動できなくなったり。ホント訳分からん。

ツイートツイート

WordPress 3.1.4 から 3.5.1 へ自動アップグレードしたら・・・

客先のブログを WordPress で運用してるんだけど、今までのサーバの PHP や MySQL のバージョンが古かったため、バージョン 3.1.4 止まりだったのが、今度めでたくサーバ移設されて WordPress も最新バージョンに更新できるようになった。

ブログは3つあるけど、とりあえず投稿数が少なくてもしなんかあっても影響が少ないブログから先に更新してみることに。とはいっても、ちゃんと DB とファイルのバックアップを取ってから、おそるおそる自動更新のボタンをクリック。以下がその時の状況。

http://ja.wordpress.org/wordpress-3.5.1-ja.zip から更新をダウンロードしています…

更新を展開しています…(どきどき)

展開したファイルをチェックしています…(お、遅い)

最新のバージョンをインストールしています…(まだ遅い、大丈夫か?)

データベースをアップグレードしています…(おぉ、はじめてみるメッセージだ)

WordPress の更新を完了しました。(やったー!)

結構時間化かってドキドキだったけど無事終わって安堵。
で、ダッシュボードへ移動したのだが・・・おや?バージョンが変わってないがな!

あーん(泣)、バージョンの空きすぎでやっぱ無理だったか・・・
さて、どうしよ。 ここにある通り、ちょっと調べてから手動インストールすることになるのかな・・・

ってことで、その後は後日ご報告。

ツイートツイート