Category Archives: 未分類

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 の更新を完了しました。(やったー!)

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

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

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

ツイートツイート

Ubuntu 12.04 で Dropbox をインストールする方法

Ubuntu ソフトウェアセンターからインストールしても何やらエラーが出て失敗するので、以下のページにあるように端末(コマンドライン)からインストールしてみようかな。

参考サイト: https://www.dropbox.com/install?os=lnx 

同じような人がいたw http://kouhoubk.blogspot.jp/2012/06/ubuntu-1204-ltsdropbox.html 

でも、以下のような記述もある。

クラウドストレージのUbuntu OneやDropboxを使用する方はインストール及び設定して下さい。
Ubuntu Oneは始めから入っています。
Dropboxは下記のコマンドで入ります。
sudo apt-get install nautilus-dropbox

んん、でも Synaptic パッケージマネージャからインストールしたらどうなるのかなぁとおもったので実行してみる。→なんとこれで OK だったw

そしてもう一つ勘違いしてたのは、launcher から Dropbox のアイコンクリックしてもウィンドウを表示しないのはそこでエラーが起こっているせいだと思ってたのだが、Dropbox 専用のウィンドウなんてなかったorz。ホームフォルダ開けばそこに Dropbox のフォルダがあるからダブルクリックで開けばいいだけのことだったという結末・・・。

ツイートツイート

Xserver へ Joomla 1.5.26 をインストールする際の不可思議な点

Xserver へ Joomla 1.5.26 をインストールする際の不可思議な点があったので記録する。

Joomla 1.5.26 をサーバへ転送し、インストールされたディレクトリにアクセスすると自動的にインストーラが開始されるのはご存知の通り。

で、ステップ 2 の「事前確認」において、「MB languageのデフォルト」が「いいえ」と出力されており、以下の文章も追記されている。
「PHP mbstring language が ‘neutral’に設定されていません。.htaccessに ‘php_value mbstring.language neutral’ を追加すると設定出来ます。」

そこで、元々あった htaccess.txt を開き、php_value mbstring.language neutral を最後に追加して、.htaccess にリネームするのだが、そうすると必ず「500 エラー}が出てしまうのだ。これはどういうことだろう。「php_value mbstring.language neutral」に文法的な間違いがあるのだろうか・・・
インターネットで調べても http://www.templatemonster.jp/joomla/#03 のようにちゃんと書かれているのだが・・・ 

しかたがないので、Xserver のコントロールパネルには php.ini を編集する機能がついているので、元々 Japanese が設定されているものを neutral に設定して保存すると、この部分をクリアした。しかし、php.ini はサイト全体に影響が及ぶので、ルートディレクトリに入れている WordPress に問題がなければよいのだが・・・

 

ツイートツイート

WordPress の印刷プラグイン WP-Print で 404 エラーが出た時の対処法

WordPress は標準で印刷向けには対応していない。
そんな時、印刷プラグイン WP-Print を使うと良いのだが、パーマリンクがデフォルト以外だと「404 error」が出るのかな?

解決方法は以下にある。

http://wordpress.org/support/topic/plugin-wp-print-custom-post-types-print

ただそうやって印刷画面が出てきても、普通の投稿タイプ(post)だけに対応しているので、カスタム投稿タイプを独自に追加している場合はさらに修正が必要。

ツイートツイート

Google 検索時に不要なサイトをブロックする Personal Blocklist

自分はよく無償の素材を探すことがあるのですが、例えば無償のアイコンを探すときには「free icon vector」などと複数のキーワードを半角スペースで区切って検索します。ここで「free」と入力するのは英語圏では無償を表すのが「free」だから。

ところがそうやって free と入力したにもかかわらず 123RF や shutterstock など有償の素材を扱うサイトまで検索されてしまいます。これは、ページのどこかに free と載っていれば無償素材でなくとも検索されるので、これらのサイトは「free images is here(無償画像はこちら)」などと巧みに各ページに埋め込んでいるためです。あるいは無償の画像を提供するサイトに、広告として有償の画像も一緒に載せてもらうなどの手法を取ると、画像検索時に有償の画像も検索されるように仕組むことができます。

そんな時、検索時にサイトごとブロックしてしまう Chrome 拡張機能 「Personal Blocklist」が便利です。

Personal Blocklist

 

 Google アカウントを持っている方ならご存知かと思いますが、以前は似たような機能があったのですが、今は提供されなくなっています。その際、ブロックしたサイトの確認や解除のための「ブロックしたサイトの管理」という ページがありましたが、そのページはまだ存在しますので、こちらから設定することもできます。

さて、Personal BlockList も Google 製ということなので、実は、「ブロックしたサイトの管理」と同期してるのではないかと思ったのですが、残念ながら一切同期はしていない模様。ここら辺どうにかして欲しいなぁと思いますけどね・・・

ツイートツイート

WordPress のインストールディレクトリをリネームしたらログインできなくなった場合の対処

一旦 WordPress を作ったけど、リニューアルしたいとか、別バージョンを作りたいといった場合によくやるのが、今のディレクトリをリネームしてもう一度ディレクトリを作ること。

<例>

  1. /wp というディレクトリを /wp_old にリネーム
  2. /wp ディレクトリを新たに作成
  3. /wp に WordPress を新たに構築

こうするのは 3. で新たに構築するときに、旧サイトの内容を見ながら設定できるというメリットもあるのだが、ただしこの時、最初に作った時のディレクトリ情報 /wp がどこかに設定されているので、ディレクトリをリネームしただけでは /wp_old/wp-admin でログインしようとしても出来なかったりする。そんな時、wp-config.php に以下の1行を挿入してアップロードすればログイン出来るようになる。

define('WP_SITEURL', 'http://example.com/wp_old/');

これで管理画面にとりあえずログイン出来れば、他の設定なども変更できる。

 

 

ツイートツイート