‘WordPress’ カテゴリーのアーカイブ

Page 1 of 41234»

in_category() がどうしても効かない件

2008 年 12 月 29 日 月曜日

WordPressのカテゴリーを判別する関数 in_category()がどうしても効かない件が解決しました。

この関数は、特定のカテゴリ内にいるときだけ、特定の何かを出力したりする、カスタマイズに必須の関数です。このように使います。

<?php if ( in_category('5') ): ?>
  // ここにカテゴリ特有の PHP/HTML を書く
<?php endif; ?>

ところが、これがどうしても、ループ内でもループ外でも、どうやっても効かないという現象が発生。しばらく悩んだんですが、

in_category()は記事のないカテゴリーには適用されない

ということが分かりました。そのカテゴリー内の子カテゴリーに記事があってもダメ。そのカテゴリーそのものがエンプティだと有効にならない、というわけでした。

Eコマースサイトを作るプラグイン

2008 年 12 月 19 日 金曜日

WordPressで完全なECサイトを作るプラグインを発見した。

The WP e-Commerce shopping cart plugin for WordPress is an elegant easy to use fully featured shopping cart application suitable for selling your products, services, and or fees online.

WordPress › WP e-Commerce « WordPress Plugins

こちらにサンプルショップがあるので、ひとしきりカートに追加して冷やかしてみたんだけど、良くできている。
Gold Cart Shop
決済までは試してないけど、これがブログツールで出来ている、といっても誰も信じないくらいによく動いている。
中身の管理も簡単そうで、小規模ECサイト、個人ショップならこれで充分運営できるのではないか。

残念なのは、我が社には現在のところ物を売るサイトがない、ということである。あと3年早くWordPressがあったらなぁ。

(いや、この3年がなかったらこちらもWordPressを使いこなしたりできないんだけど)

続々・投稿記事リストでサブメニュー

2008 年 12 月 18 日 木曜日

WordPressには、記事のリストを出力するタグ wp_list_pages があるが、投稿(post)で同じようなことをするタグがない。
でも、CMSとしてWordPressを使うときに、ページじゃなくて投稿の方で管理したいときも結構あるのだ。
というわけで、投稿で
 ・同一カテゴリー内の記事リストを出力
 ・自分が今いる記事をハイライト
する、つまりサブメニューを作成するのが悲願だった。

今まで2回にわたって「同一カテゴリー内の記事一覧」を出す方法を模索してきたが、どうにか実用レベルのものが出来た。

1回目のものは、カテゴリーの数だけ同じコードをコピペ改変して貼り付けなくてはならなかった。
2回目のものは、記述は1回ですむものの、コメントの表示が混じり合ってしまうという致命的欠陥があった。

今回の方法は、
・同一カテゴリー内の記事リストを出力
・自分が今いる記事をハイライト
という目的に一応合致しています。

プラグインを一つ使っています。
coffee2code.com » Blog Archive » Plugin: Customizable Post Listings

これはリストの出力を色々とカスタマイズしてくれるプラグインなんですが、これをそのまま使うだけだと目的の半分も達成できないので、色々と工夫しました。

まずコードはこんな感じ

<?php if(is_single() || is_category()) : ?>
<?php if (function_exists('wp_list_posts')) {;?>
<?php $cat = get_the_category(); $cat = $cat[0]; {
//echo "$cat->cat_ID" ;
} ?>
<ul id="sub_navi">
<?php c2c_get_recent_posts(
	$num_posts = 100,
	$format = "<li id='post-%post_id%'>%post_URL%</li>",
	$categories = "$cat->cat_ID",
	$orderby = 'date',
	$order = 'DESC',
	$offset = 0,
	$date_format = 'm/d/Y',
	$authors = '',
	$include_passworded_posts = false) ; ?>
</ul>
<?php } ;?>
 
<?php endif; ?>

まず、最初にシングルかカテゴリートップのときだけ出力するように分岐させる。
3行目ではカテゴリーIDを取得。カテゴリーIDは配列形式でしか取り出せないのでちょっと面倒。次のechoはデバッグ(確認)用です。
次のプラグイン変数内の引数は、プラグインのページで確認してもらうとして(名前で大体分かりますよね)、注目は

	$format = "<li id='post-%post_id%'>%post_URL%</li>",
	$categories = "$cat->cat_ID",

の2つ。後でハイライトさせるために、リストにポストIDをふるのと、「自分のいるカテゴリーの時だけ出力させる」ために先ほどのカテゴリーIDをぶちこむ。

ハイライト処理

ハイライト処理を実現するために、header.phpのhead内にこんな記述をしておくと吉。
本当はlistの中に current-item とか出力させたいんだけど。

<?php while (have_posts()) : the_post(); ?>
<style type="text/css">
<!--
#post-<?php the_ID(); ?> a {
	font-weight: bold;
	color: #000000;
	text-decoration: none;
}
-->
</style>
<?php endwhile; ?>
</head>
追記

ハイライトの事を考えなくていいなら、「同一カテゴリ内のリストを出力するプラグイン」自体は存在する。
WPのプラグイン:Other Posts from Cat
ただこれは「関連記事」のようなかたちで記事の後に出力することを想定しているプラグインの模様。
あ、このプラグインもDagonDesignだ。

WordPress2.6*から2.7へのアップグレード注意メモ

2008 年 12 月 15 日 月曜日

WordPress2.7の日本語正式版がリリースされたので、WordPress管理サイトのアップグレードを開始。その際に気付いた点などを随時メモしていきます。

プラグイン関連

Admin Management Xtendedは使えません(使いません)。
2.7では、本体機能で管理画面のクイック編集機能があるので、このプラグインはオフにするように警告メッセージが出ます。

Simple Tagsをアップデート
タグ一括編集、関連エントリー機能などをもつ必須プラグインです。アップデートしないと表示されません。1.5.8-2.7にアップデートしましょう。

WordPressの管理画面が生まれ変わる『Admin Management Xtended』

2008 年 12 月 10 日 水曜日

これは使える! WordPressのプラグインです。
Admin Management Xtended

WordPressを使っていて、意外と面倒なのが投稿本文以外の情報の編集。投稿した直後に「あ、カテゴリ選んでない」とか「タグつけ忘れた」とかで再編集するのは、割と億劫です。
ちょっと更新するだけなのに、「編集→修正→保存」という手順を踏まなくてはならない。しかもそれだけで投稿リビジョンが一つ進んでしまう。

そこでこのプラグイン。『Admin Management Xtended』。これをインストールすると、記事一覧の管理画面に小さなユーティリティアイコンが沢山表示されます。

これらを使って、画面遷移することなく、この一覧ページ上で本文以外の情報が編集できるようになります。

タグを編集するとき


投稿の日付も編集できます。


カテゴリーやリビジョンを編集する場合は、Lightboxで表示されます。

他にも、クリック一発で公開・非公開が選択できたりと、鬼のように便利なんですが、2.7では「インライン編集」という機能が搭載されているようなので、このプラグインの存在意義はちょっと薄くなりそうです。
WordPress本体開発陣も、人気のあるプラグインの機能はチェックしていたりするのかも知れませんね。人気プラグインはWordPressにない、かつみんなが求めている機能、ということなので。

WordPressの新聞プラグイン/テーマ

2008 年 11 月 30 日 日曜日

これは面白い試み、WordPressでWeb新聞を作るプラグイン。
単純に新聞風のCSSテーマにするだけでなく、印刷するときにうまく一枚に収まるようにプリント用CSSを設定してある。
こちらのサンプルを「印刷プレビュー」してみるとよく分かる。
サンプル新聞 Type2

新聞作成プラグイン / テーマ for WordPress

WordPressでオリジナル新聞を簡単に作成することができるプラグインとテーマです。
Webだけでなく、A4用紙印刷に最適化されていますので、実際に印刷して新聞として配布することも簡単です。
また、マガジン風デザインなどのテーマを適用することで、幅広いプリントメディアとしてもお使いいただけます。
「WP Newspaper Plugin and Theme」でWebメディアとプリントメディアの融合を、是非、お楽しみください
WPNP » 新聞作成プラグイン / テーマ for WordPress - WordPress 新聞作成プラグイン/テーマ

1枚以内に収めるために、字数をうまく調節しながら作成しなければ行けないが、WordPressのプレビュー機能は再現性が高いのでこの点は特に問題はなさそう。
それより気になるのは、5記事固定で設定されているらしいところ。新聞風ならいいが、実際に新聞として印刷するとなると、A4に5記事は一つ一つのスペースが少なすぎて何も書けない。

ともあれ、試みとしても面白いし、学級新聞レベルならうまく機能するだろう。
(…昔はわら半紙にプリントした学級新聞があったものだけど、今の時代はみんなデジタルでやっているのだろうか。)

WordPressのWYSIWYG強化プラグイン

2008 年 11 月 28 日 金曜日

WordPressのWYSIWYG強化プラグイン、『TinyMCE Advanced』がかなり使える。

WordPress › TinyMCE Advanced « WordPress Plugins

当初は、「フォントカラーを変更したい」というクライアントのリクエストに応えてとりあえず試してみるか、くらいだったんだけど、実際自分でもかなり使えると言うことが分かった。

TinyMCEの機能を全面的に開放して、各種のボタンが追加できる。Ajaxの管理画面上で、好きな機能のボタンをドラッグ&ドロップすることで簡単に入れ替え可能だ。

ドラッグアンドドロップで機能を入れ替える

フロートクリアの指定が読み込めるので、レイアウトも再現可能だ。

そして、一つ大注目の機能が「テーマのデフォルトCSS読み込み」。これによって、CMS管理しているWordPressのレイアウトを、WYSIWYG上にある程度再現することも可能になるのだ。
昔から、サイトのCSSをWYSIWYG上に再現できないかはいろいろ考えてきたけど、こういう風に実現させる発想はなかった。
このCSS、#のID指定やタグ(#the_class,tag)などは無視して、クラス指定(.myclass)のみ反映させるという振り分け手法をとっている。

WordPressで「メンテナンス中」モードにするプラグイン

2008 年 11 月 10 日 月曜日

運営中のWebに直接手を加えなきゃいけない場面は、よくある。
テスト環境でちゃんと試験して、それがそのまますんなり行けばいいんだけど、どうしても本番環境でないと設定できないとか、時間がないとか、その他の諸事情により。
アクセス制限をしたり、phpで条件分岐のメッセージを出したりもできるけど、WordPressには、一発で「メンテナンス中です」にしてくれるプラグインがありました。

Maintenance Mode Plugin — Software Guide
WordPress Plugins/JSeries » Maintenance Mode 日本語版

特に難しい英語もないし、設定項目も少ないので本国版でも大丈夫だと思いますが、日本語版もあります。
日本語はちょっとバージョンが古いけど2.6系でもちゃんと使えます。

メンテナンスモード設定

メンテナンスモード設定

メンテナンスにかかる時間、メッセージを入力して「設定変更」すると、一瞬にしてサイト全体がメンテナンスモードに切り替わります。
そしてこのプラグインの偉いところは、ログイン状態の場合は通常通り閲覧できること。これで本番環境でも心おきなく(?)テストができるというものですが、テストが終わったら通常モードに戻すことをお忘れ無く。(メンテナンスモード中は、ダッシュボードにずっと警告が出てるので大丈夫だと思いますが)

WordPressテンプレートの条件分岐

2008 年 11 月 9 日 日曜日

良く忘れてしまうのでコードをメモ。

<?php if (is_home()) {?>
<p>これはホームの場合</p>
<?php } else if (is_single()) { ?>
<p>投稿の場合</p>
<?php } else{ ?>
<p>それ以外の場合に表示されるテンプレート。</p>
<?php } ?>

is_singleは引数をとって、細かく指定することができる。(2.5以降)
例えば
is_single(’17′)  →ページID17の場合。
is_single(’hogehoge’)  →投稿スラッグかタイトルがhogehogeの場合。

is_page()も同様の引数を取る。
is_page() →ページが表示されている場合。
is_page(’42′)  → ID 42のページが表示されている場合。
is_page(’About’) →投稿タイトルがAboutの場合。

カテゴリーの中にいる場合

is_category(’9′)
で、「カテゴリーID9の場合」という指定が出来るけど、カテゴリーの場合むしろよく使うのはこちらだろう。
in_category(’9′)
この条件分岐をテンプレートarchive.phpの中で使うことによって、カテゴリごとの挙動が細かく指定できる。

WordPressのカテゴリー/category/を削除するプラグイン

2008 年 11 月 8 日 土曜日

WordPressのカテゴリートップのURLは、デフォルトで/category/という文字列が入って、こうなります。

http://www.example.com/cagegory/hoge

この「category」は、カスタマイズして好きな文字に変えることはできますが、それでも何かを入れなくてはいけません。

これが非常に邪魔なんですよね。記事の方は、permalink設定で/%category%/%postname%.htmlと設定すれば

http://www.example.com/hoge/hogehoge.html

というURLになるのに、そのトップが
http://www.example.com/hoge/
ではなく、
http://www.example.com/category/hoge
になる。

この邪魔な「category」を取っ払ってしまうのが、こちらのプラグイン。

Top Level Categories » Fortes

見た目、気分的にスッキリするだけでなく、CMSとしてWordPressを使用した際の全体の整合性が向上して、既存サイトの置き換えにもぴったりです。

Page 1 of 41234»