Home

wordpress Memo

カテゴリーアーカイブの中で記事の並べ替えをしたい!

用語集なんかを作っていて、カテゴリーの中で50音順に並べたかったりすることあるじゃないですか。
そのときに

<?php query_posts('orderby=meta_value&meta_key=kana&order=ASC'); ?>

としたら、あかんかったのです。そのカテゴリーの記事だけでなくて、全部の記事が吐き出されてしまいました。

正しくは

<?php query_posts($query_string . '&orderby=meta_value&meta_key=kana&order=ASC'); ?>

とせねばならんかった模様。

カテゴリアーカイブを開いた段階で、$query_stringにすでにどのカテゴリーにいるかって情報が入っているので、それを指定しないといけなかったんですな。

  • Comments (Close): 0
  • Trackbacks (Close): 0

カテゴリ一覧を出力するときに、カテゴリに記事がない場合は表示方法を変えたい!

と思ったので色々調べてみたんだけど、どうもうまい方法が見つからない。
できればforeachでループさせて、Wordpressに自動で判別させたい!
ので、悩んだあげく以下のようにすることにした

 


<dl class="glossary-index-list">
<dt class="glossary-index-ttl"><img src="<?php bloginfo("template_directory") ?>/public/images/glossary/glossary-index.png" alt="索引"></dt>
<?php
$cat_all = get_terms("category","fields=all&get=all");
foreach($cat_all as $value):
?>
<?php
$havePosts = get_category($value->term_id)->category_count;
if($havePosts > 0):
?>
<dd class="glossary-index-item"><a href="<?php echo get_category_link($value->term_id);?>"><?php echo $value->name; ?></a></dd>
<?php else: ?>
<dd class="glossary-index-item noPost"><?php echo $value->name; ?></dd>
<?php endif; ?>
<?php endforeach; ?>
</dl>

説明は後ほど…

さて、ここで何が行われているのかという話ですわ
まず

<?php
$cat_all = get_terms(“category”,”fields=all&get=all”);
foreach($cat_all as $value):
?>

この部分。
これは、カテゴリーを全部拾ってきて一覧に出せや
という話ですね。カテゴリーのデータを全部取得して、それを$cat_allに代入しています。
ほいでforeachを使ってカテゴリーの数の分だけループさせて、指定したHTMLのフォーマットで吐き出させる。
その際に先ほどの$cat_allを$valueとしてちょうだいと言っています。(深い意味はわからんが)
ほいで、ループするときに、カテゴリーの中に記事がある場合とない場合でちがうHTMLで出力したいちゅうことです。

その部分が

<?php
$havePosts = get_category($value->term_id)->category_count;
if($havePosts > 0):
?>

これ
get_categoryで個別のカテゴリーを呼び出して、さらにcategory_countでその中の記事数を呼び出して、それを$havePostに代入しています。
ほいでifで$havePostが0より多い数だったらこれしろや!
でなかったらあれしろや!
という命令を書いています。

以上!

  • Comments (Close): 0
  • Trackbacks (Close): 0

minttyからbowerコマンドが通らないでござる

正確には、minttyでbower install [package] しても、パッケージがダウンロードされない不具合
bower installはgitからパッケージを探して自動でDLしてくれているので、そもそもあれか?gitがPCに入ってなかったか?とgitインスコ
で、再度bower install [package]するも、やっぱり通らず。
試しにcmd.exeでやってみたら、なぜかそちらからは通ってくれる
で、いつもの通りグーグル先生に聞いてみたらそもそもminttyでgit使えないから!という記述発見工エエェェ(´д`)ェェエエ工
でも、もちっと調べてみたら、cygwinにパッケージされているminttyなら大丈夫らしい

で、このサイトを参考にcygwinのインスコとminttyの設定

http://blog.roundrop.jp/show/34

結果、minttyで無事にbowerコマンドが通った!
でも

cygwin warning:
MS-DOS style path detected: C:\Users\bob\AppData\Roaming\npm/node
Preferred POSIX equivalent is: /cygdrive/c/Users/bob/AppData/Roaming/npm/node
CYGWIN environment variable option “nodosfilewarning” turns off this warning.
Consult the user’s guide for more details about POSIX paths:

http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

なんつぅエラーが出てるな。
MS-DOSスタイルのパスに対してwarningを出しているらしい
ウザイので、http://takuya-1st.hatenablog.jp/entry/20110423/1303586388 こちらを参考にエラーが出ないように設定。
以上で、bowerコマンドがちゃんと使えるmintty設定終わり

  • Comments (Close): 0
  • Trackbacks (Close): 0

in browser design備忘録【jekyll】編

in browser designの勉強のために、色々マシンにインストール中

最初はmixtureで、これはまぁなんとも使い勝手が良い。GUI最高。
でも、たとえばjQueryとかhtml5shivとか、最近のサイト制作には欠かせないパッケージをもっと簡単にダウンロードしたいわけで
それも、できれば最新版をね。
ということで、なれない黒画面に挑戦することにした。

先日高円寺のこけむさズで行われたin browser design勉強会で紹介されていた
jekyll(http://jekyllrb.com/)を試してみることにする。

サイトによると

~ $ gem install jekyll
~ $ jekyll new my-awesome-site
~ $ cd my-awesome-site
~/my-awesome-site $ jekyll serve
# => Now browse to http://localhost:4000

これだけで基本的な機能は使えてしまうらしい

楽ちんじゃん!

ということでさっそくインストール
でプロジェクトを作って、ディレクトリ移動して
jekyll serve を叩いたら…

Configuration file: e:/bob/jekyllDemo/_config.yml
Source: e:/bob/jekyllDemo
Destination: e:/bob/jekyllDemo/_site
Generating… Liquid Exception: No such file or directory – python c:/Ruby193/lib/ruby/gems/1.9.1/gems/pygments.rb-0.5.0/lib/pygments/mentos.py in 2013-05-19-welcome-to-jekyll.markdown
c:/Ruby193/lib/ruby/gems/1.9.1/gems/posix-spawn-0.3.6/lib/posix/spawn.rb:162:in `spawn’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/posix-spawn-0.3.6/lib/posix/spawn.rb:162:in `spawn’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/posix-spawn-0.3.6/lib/posix/spawn.rb:307:in `popen4′
c:/Ruby193/lib/ruby/gems/1.9.1/gems/pygments.rb-0.5.0/lib/pygments/popen.rb:41:in `start’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/pygments.rb-0.5.0/lib/pygments/popen.rb:203:in `mentos’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/pygments.rb-0.5.0/lib/pygments/popen.rb:192:in `highlight’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/tags/highlight.rb:57:in `render_pygments’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/tags/highlight.rb:45:in `render’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/liquid-2.5.0/lib/liquid/block.rb:106:in `block in render_all’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/liquid-2.5.0/lib/liquid/block.rb:93:in `each’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/liquid-2.5.0/lib/liquid/block.rb:93:in `render_all’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/liquid-2.5.0/lib/liquid/block.rb:82:in `render’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/liquid-2.5.0/lib/liquid/template.rb:124:in `render’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/liquid-2.5.0/lib/liquid/template.rb:132:in `render!’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/convertible.rb:77:in `render_liquid’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/convertible.rb:128:in `do_layout’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/post.rb:285:in `render’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/site.rb:230:in `block in render’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/site.rb:229:in `each’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/site.rb:229:in `render’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/site.rb:44:in `process’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/command.rb:18:in `process_site’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/commands/build.rb:23:in `build’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/lib/jekyll/commands/build.rb:7:in `process’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.0.2/bin/jekyll:83:in `block (2 levels) in ‘
c:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/command.rb:180:in `call’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/command.rb:180:in `call’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/command.rb:155:in `run’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/runner.rb:400:in `run_active_command’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/runner.rb:66:in `run!’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/delegates.rb:11:in `run!’
c:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/import.rb:10:in `block in ‘
Build Failed

はい、エラー出ました・・・
サーバが立たない・・・

ググったところ、pythonとpygmentsってのがマシンにインストールされていないかららしい。

ということで、マシンにpythonをインスコ

http://www.python.org/

ここからDLしてインスコ
ほいで、pygmentsをインスコすべくhttp://pygments.org/へ行ってみたら
どうやらeasy_install pygmentsで簡単にインストールできるらしい
そら便利だとこアンド打ってみたら
あきまへんねん。
あらかじめeasy_installってプログラムをインストールしておかないといけないという複雑な状況
ほんでez_setup.pyをダウンロードして、python eq_setup.pyとコマンドを打ってもなーんも起き
ググったら、python3系ではあかんとのこと。
さっきマシンにインスコしたのは、確かに3系でした!
ということで、2系をインストールしなおして、easy_installもインストールできて
easy_install pygments でpygmentsもインストールして
無事にjekyll serverが通りましたとさ

長い道のりだった…

  • Comments (Close): 0
  • Trackbacks (Close): 0

infinitescroll

とあるプロジェクトでつかったmasonry.jsとinfinitescroll.js
masonryはpinterest的なタイルレイアウトを実現するjqueryプラグイン
infinitescrollは無限スクロールを実装できるプラグイン

infinitescrollは基本的には一番下までスクロールすると、つぎのページを自動で読み込むんだけども
バージョン1.4からTwitterのように、ボタンを押すとロードされるUIも実装できるようになった(とwebサイトに書いてあった)

クライアントさんがボタンをおしたらロードされるUIを希望していたので、infinitescrollのこの機能を利用しようとして失敗した話

infinitescroll (http://www.infinite-scroll.com/)

masonry (http://masonry.desandro.com/

infinitescrollのwebサイトによると


$('#content').infinitescroll({

navSelector : “div.navigation”,
// selector for the paged navigation (it will be hidden)
nextSelector : “div.navigation a:first”,
// selector for the NEXT link (to page 2)
itemSelector : “#content div.post”
// selector for all items you’ll retrieve
});

の下に


$(window).unbind('.infscr');
$('a.next').click(function(){
$(document).trigger('retrieve.infscr');
return false;
});

と書くと、リンクを押したらロードされるUIが実装されるという


$(window).unbind('.infscr');
$('a.next').click(function(){
$('.container').infinitescroll('retrieve');
return false;
});

が、これがまぁまったくもって動かない。
設定したリンクを押しても何もおきない。

ググっていたら見つけたのがこのページ

http://stackoverflow.com/questions/10762656/infinite-scroll-manual-trigger

コードを下記にしたら無事に動くようになった。

しかし、なんでサイトに載っているのと違う書き方をしたら動くようになったんだろう??

  • Comments (Close): 0
  • Trackbacks (Close): 0

【やっぱり】【不可解だけど】子カテゴリ名のみ表示【できたよ】【できてなかったよ】

記事のリスト表示をするときに、記事が属する子カテゴリのみ表示させたかったわけ。
カテゴリの構造は
■親カテゴリ
□子カテゴリA
□子カテゴリB
みたいな感じ。

http://web.donnatokimo.com/wordpress/327

↑こちらを参考にさせてもらって(てか丸パクリして)

<?php
$cat = get_the_category();
$cat = $cat[0];
$catName = $cat->cat_name;
$parent = get_category($cat->category_parent);
$parentCatName = $parent->cat_name;
echo $parentCatName .$catName;
?>

ってコードを書いてみるけども、親カテゴリの名前しか表示されない。

ためしに

<?php
$cat = get_the_category();
$cat = $cat[1];//←ここの数字を「0」から「1」に変更した
$catName = $cat->cat_name;
$parent = get_category($cat->category_parent);
$parentCatName = $parent->cat_name;
echo $parentCatName .$catName;
?>

としたらできた。
何故できたかわからんけど、正しく動いているからよしとする。
時間ができたらもうちょっと突っ込んで調べてみること【メモ】

 

<追記>

複数の子カテゴリを選択していた場合は、がっつり親カテゴリが表示されてしまった…
てか、もしかしたら、子カテゴリを3つ選んだりしたら、一番最初の子カテゴリ名が表示されたりするのだろうか
調べてみなあかん

  • Comments (Close): 0
  • Trackbacks (Close): 0

mixtureを入れてみた【その2】

mixtureまわりのお勉強その2

友だちから頼まれたjqueryのお仕事をするのにmixtureを使ってみる。
いや、別に使わなくても全く問題ない(というよりむしろいつも通り作ったほうがだいぶ楽だ)けども
ちゃんとしたサイトをmixture使って作るよりも、軽めの作業の方がええかと思ってのぉ。

適当な名前でフォルダを作ってmixtureで開く。「Empty」を選んでベーシックなセットだけをフォルダに構築する
今回はアコーディオンメニューを作るって作業なので、templateの中のinclude>header.liquidを編集。
ふむふむ、ここまでは何ら問題なく作業できた

ほいで、せっかくだからsassを使ってcssを作ろう!と思い立って、試しにsassフォルダを作って、その中にbasic.sassというファイルを作ったら
mixtureが勝手に必要な設定ファイルとかを作ってくれた!なんてオートマチック!
でも、どうじにmixtureにもエラーが( ̄д ̄)

compassの設定フォルダのパスを、自分の環境に合わせてちょ ということ。
これが、色々と書き方を買えてパスを修正しても一向にエラー表示が消えない。当然cssファイルも生成されない。

色々といじくって、数時間後に理由が判明。
mixture.jsonにある”useCompass”の設定部分が”false”のままになっていた。
compassは使わないって設定ファイルにあるんだから、そらエラーも消えるわけがないやね。
“false”を”true”と書き換えたらエラーも消えた。

ところで、さっき作ったsassフォルダの中にconfig.rbがあるけども、mixtureが作ったcompassフォルダの中にも同じconfig.rbがある
どちらもいじってみたけども、cssへのパス等の設定はsassフォルダ内のconfig.rbを見ているらしい。
もしかして、これだとcompassの書き方はできないかしら?と思ったら、ちゃんとできたね。mixtureすごいね!

でも、まだうまみはわからず。うーん精進

  • Comments (Close): 0
  • Trackbacks (Close): 0

mixtureを入れてみた

http://mixture.io/

Mixture.io

Macで言うところのCodekitのようなものらしいが、そもそもCodekitで何ができるかわかってないからな。
ひとまず会社のマシンにインストール。

Mixtureについての記事

http://dev.classmethod.jp/tool/mixture/

http://creative-tweet.net/blog/2013/04/used-the-mixture.html

大事なことを忘れてた!
WindowsでMixtureを使う場合
.NET4.5 以上がインストールされている必要があるぞ

http://www.microsoft.com/en-gb/download/details.aspx?id=30653

↑ダウンロードしてインスコするのだ

 

mixtureと同時にLiveReloadもインスコした
Sublime Text 2を起動させた状態でLiveReloadを起動させると
LiveReload plugin for sublime text とかちあって起動しないので、
LiveReload → Sublime Textの順番で起動させる。
保存するだけで自動でリロードされるのは超ベンリだー
あ、あとSublime Serverも入れたし。

  • Comments (Close): 0
  • Trackbacks (Close): 0

AptanaにZen-Codingをインストール

最近Zen-Codingというのが流行りらしい。

例えば、普通EditorでHTMLを書くときは

<div id="page">
  <div class="logo"></div>
  <ul id="navigation">
    <li><a href=""></a></li>
    <li><a href=""></a></li>
    <li><a href=""></a></li>
    <li><a href=""></a></li>
    <li><a href=""></a></li>
  </ul>
</div>

と書かないといけなかったものが

@div#page>div.logo+ul#navigation>li*5>a@

と書くだけですんでしまう夢のようなプラグイン

こいつぁ作業効率アップにつながるね!ってことで最近使っているAptanaに入れてみることにした。

まずは、プラグインを下記サイトからダウンロード

https://github.com/sergeche/eclipse-zencoding

インストール方法や設定は下記を参考に

http://www.tonpoo.com/blog/2010/03/aptana-studio-zen-coding-y/

(人まかせ)

さて、問題はこのプラグインが本当はEclipse用でAptana用ではないということ

まぁ、AptanaはEclipseベースのエディターなので、多分大丈夫だと思うけど…

追記:

やっぱり、Aptana用じゃないとダメっぽかったので

http://code.google.com/p/zen-coding/downloads/list?can=1&q=aptana&colspec=Summary+Uploaded+Size+DownloadCount+Filename

こっちからAptana用を改めてDL。インストール。

HDで編集したのに、DVDに焼いたら画像が荒いのよ(その後)

Premiereのシーケンスを見直して、徹底的にプログレッシブに設定した。

その上でEncoreに送ってインターレースでDVDに焼く。

テレビに映してみると・・・うまくいった!!

なるほどぉ、こうすればよかったんだ。

シーケンスの設定をメモ

◆シーケンス1

  • 編集モード:デスクトップ
  • タイムベース:29.97fps
  • フレームサイズ:1920×1080
  • アスペクト:1.0
  • フィールド:なし

◆シーケンス2

  • 編集モード:デスクトップ
  • タイムベース:29.97fps
  • フレームサイズ:1920×1080
  • アスペクト:D1/DV NTSC Widescreen
  • フィールド:なし

シーケンス1をシーケンス2の中に入れ子にする

シーケンス2の中に入れるシーケンスは全てシーケンス1の設定にしておく

しかし、オーサリングって面倒くさいのね…

Home

Search
Feeds
Meta

Return to page top