※スマホ対応はしてません。

カテゴリー: サーバー

GruntJSでシェルのコマンドを(非同期に)実行する方法。

カテゴリー: JavaScript, サーバー

キーワードが悪かったのか、なかなか見つけられなかったので。

以下の流れです。

  1. タスクを作る
  2. シェルへコマンドを投げる
  3. 非同期処理が終わるまで待つ
    • Node.js
    • GruntJS
  4. エラーとか拾う

とりあえず、lsしてファイル一覧を得る処理を作ってみる事にします。

環境

$ grunt --version
grunt v0.4.0rc2

タスクを作る

Linuxでcdの代わりにpushdを使うと作業効率がまじマッハ。

カテゴリー: サーバー

いや既にご存知でしたらそれで構わないんですが、私は知りませんで。こんな便利なコマンド、もっと早く知りたかったです。

# 現時点のカレントディレクトリを記憶して、次のディレクトリへ移動
pushd path/to/next/direcroty

# さっきpushdしたディレクトリへ戻る
popd

# pushdで記憶されているディレクトリを一覧表示
dirs

スタックなので、pushdでA→B→Cと移動してきたとき、一度目のpopdでBへ、もう一度popdするとAへ移動します。

何でもcdの代わりに使えば良いってわけじゃないんですが、でもなんか作業の途中でちょいと他のディレクトリに行って戻ってきたい、てな場面は結構あるかと思うんですが、そんなときに大変便利でございます。

あるよね。あるでしょ?

参考

WordPressでjQueryの最新版や任意のバージョンを使うには。

カテゴリー: Web, サーバー

jQueryは最初から登録済みだから、一度解除してやる必要があるそうで。

元のコードとか

<?php wp_enqueue_script('jquery'); ?>

wp_enqueue_script() の第二引数にURLを指定できるってんでやってみたんですが、駄目でした。

(さらに…)

PHP+SQLでバインド変数を使っているとき、どうしてもSyntax Errorになるなあと思ったら、型を指定しないといけなかったらしい。

カテゴリー: サーバー

PDO使ってます。

これが駄目だった。

  $limit = 2;
  $posts = $db->prepare('select * from posts limit ?');
  $posts->bindValue(1, $limit);
  $successed = $posts->execute();
  if (!$successed) {
    var_dump($posts->errorInfo());
  }
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2'' at line 1

どうも数値2が文字列"2"になってる感じがするね。

(さらに…)

プログラマーだけどWordPressのテーマを1から作ってみる。(その4)

カテゴリー: サーバー

そういえばサイドバーを忘れてました。

作業の記録付けるのも忘れてました。

サイドバーにも二種類あるらしい

静的なものと、動的なものと。

後者が管理画面の外観>ウィジェットから操作できるやつで、前者は単純にテンプレートを読み込むだけ(対応アクションはある)。

静的なサイドバー

get_sidebar()で読み込む。

<?php get_sidebar('hoge'); ?>でsidebar-hoge.phpというテンプレートを探してきて、出力する。

これは簡単だね。ファイルがないとデフォルトのものを読み込むみたい。

動的なサイドバー

何もしないとウィジェット設定の画面でこのテーマではウィジェットは使用できませんと表示されてる。

利用できるようにするには、register_sidebar()を使って「登録」してやる必要があるみたい。

これをfunctions.phpに書いておく。

register_sidebar(array(
  'name' => 'サイドバー',
  'id' => 'sidebar-1',
));
register_sidebar(array(
  'name' => 'フッター',
  'id' => 'footer-1',
));

これでウィジェット設定に出てくる。

使うときはdynamic_sidebar()で読み込む。

<ul id="sidebar">
  <?php dynamic_sidebar( 'sidebar-1' ); ?>
</ul>

出力されるウィジェットはliタグで囲まれるようになるので、それらをulで括る必要がある。これはdynamic_sidebar()のオプションbefore_widget, after_widgetで変更できる。

タイトルはh2で出力されるんだけど、これも同様にbefore_title, after_titleで変える事ができたよ。

強引だけどこんな事もできるね

register_sidebar(array(
  'id' => 'table-1',
  'before_widget' => '<tr>',
  'before_title' => '<th>',
  'after_title' => '</th><td>',
  'after_widget' => '</td></tr>',
));
<table>
  <?php dynamic_sidebar( 'table-1' ); ?>
</table>

↓結果(整形済み)

<table>
  <tr>
    <th>アーカイブ</th>
    <td>
      <ul>
        <li><a href='http://localhost/?m=201204' title='2012年4月'>2012年4月</a></li>
        <li><a href='http://localhost/?m=201203' title='2012年3月'>2012年3月</a></li>
      </ul>
    </td>
  </tr>
</table>

こんな風に使う場面はないと思うけども。

多言語対応

そういえばこれも知りたいところ。明日調べよう。