blog製作記録 カテゴリー

当ブログのメイキング

wordpress(2.9.2) にて、next_posts_link等、
ページネーションが正常に機能しない事例に当たりました。
3ページ目移行が表示されない等。

試行錯誤するなか、
管理画面の「1ページに表示する最大投稿数」が
posts_per_pageより小さいと正常動作するっぽい事を発見。
デフォルトが10なので、まぁ大抵は上手く動くはずです。
しかし、動作検証等でposts_per_pageを小さい数に変えると異常が表出。

根治からはほど遠いまでも、きっと役立つ局面があるはずなのでメモ。

Comments (0)

TrackBack URL :

はてブがリニューアル

気になる本を見つけたら、はてブにブックマークする癖が付いてしまいました。
雑多なブックマークからアマゾンを抽出し、ブログの端にリストしていたのですが、はてブのリニューアルに伴い使用不能に(ノД`)
自分のブックマークから「抽出」して「フィード」を得る機能がごっそり無くなっており、微妙に不便に。

Yahoo!pipesでごにょごにょ

フィードの加工でしか使った事がなかったのですが、どうやらHTMLをこね回してフィード化する事も出来る様子。
Yahoo! Pipes で、RSS を出力してないサイトをRSS化する – Fetch Page モジュールなどを参考に、とりあえずやっつけてみました。。
RSSを理解していないので、フィードとして正しいかどうかさえ分かりません(ノ∀`)挙動もちょっと怪しいです。
とりあえず、用は足しているので今日のところは撤退。
———
2008年12月12日追記
はてブコレクションのRSSが機能するようになっていたため、それを加工する方法に変更。

Comments (0)

TrackBack URL :

一旦ローカルで動作チェックし、そのまま当てました。アッサリ動作。
ただしMy Category Orderは管理画面内のタブを一旦選択する必要があります。ポチッと押すだけですが。「taxonomy.phpを書き換える必要がなくなった」と言うよりは「自動で書き換えてくれるようになった」のが正確でしょうか。

Comments (0)

TrackBack URL :

My Category Orderのバージョンが上がっていました。遂にコアファイル(taxonomy.php )を書き換えなくてもよい仕様に。
やっぱり、コアファイルを変えなくてよいのは楽でうれしいです(ノ∀`)

Comments (0)

TrackBack URL :

細かいバグがあった2.6がFIXされ2.6.1に。
早速ファイルを上書きして管理画面の案内に従いデータベースを更新。
JustList – 指定記事を含むリストを表示するプラグインも無変更で問題なく動作。
My Category Orderは前回同様taxonomy.phpの612行目のif文を以下に差し替えてお茶濁し。

	if ( 'count' == $orderby )
		$orderby = 'tt.count';
	else if ( 'name' == $orderby )
		$orderby = 't.name';
	else if ( 'slug' == $orderby )
		$orderby = 't.slug';
	else if ( 'term_group' == $orderby )
		$orderby = 't.term_group';
	else if ( 'order' == $orderby )
		$orderby = 't.term_order';
	else
		$orderby = 't.term_id';

諸々、つつがなく稼働中です。

Comments (1)

TrackBack URL :

ブログ革命(プチ)2のものを、プラグイン化できましたヽ(・∀・)ノ よくやった俺

JustListと命名

JustListプラグインを使用することで、WordPressに「指定記事を含む各種リストのページへ飛べる」機能を追加できます。例えば、検索エンジン等から単体記事に辿り着いたとします。前後の記事も見たくなりますよね?しかし、標準機能では前後1記事ずつしか辿れません。「リスト」には飛べないのです。

ソース

これでコアファイルを書き換える必要がなくなったぞ(*゚∀゚)=3
wordpress2.6でしか確認しておりませんが、多分2.5.1でも動くと思います。
※追記2.6.1も無変更で動きました

get_var("SELECT COUNT(*) FROM $wpdb->posts $pagewith_join WHERE 1=1 $pagewith_where $pagewithby");
			//$paged $limit作り直し
			$posts_per_page = get_option('posts_per_page');
			$paged = floor( $postCounter / $posts_per_page ) + 1;
			$pgstrt = ($paged -1) * $posts_per_page;
			set_query_var('paged',$paged);
			$limits = 'LIMIT '.$pgstrt.','.$posts_per_page;
		}
	}
	return $limits;
}

add_action('posts_where_request','pagewith_posts_where_request');
add_action('posts_join_request','pagewith_posts_join_request');
add_action('post_limits_request','pagewith_post_limits_request');

/* pagewith リンクの調整 */
function pagewith_remove_pagenum_link($result) {
	$result = preg_replace('/(\?|\&)pagewith=\d*/','',$result);
	$result = str_replace('/&','/?',$result);
	return $result;
}

add_action('get_pagenum_link','pagewith_remove_pagenum_link');

?>

課題

まだ、そのリストへのリンクを楽に取得できるタグを作っておりません。
従って、実装はスキン(たとえば single.php)に
<?php bloginfo(‘url’); ?>/?pagewith=<?php the_ID(); ?>#post-<?php the_ID(); ?>”>[全体]</a>
等と記述せねばなりません。
また、URLが orderby=rand 等の引数を持つ場合は無効となります。

使用例

今回の拡張で、リストURLに「pagewith=ポストID」を付加することで、ポストIDの記事を含むページが自動的に選択されます。
たとえば、本ブログの87番記事の場合。(なお、この記事への通常のリンクは http://www.denkasi.com/blog/?p=87 です。)

全時系列リストの87番記事を含むページへは

http://www.denkasi.com/blog/?pagewith=87#post-87
との記述になり、(本記事を書いている現在は)8ページ目へ飛びます。

同カテゴリリストの87番記事を含むページへは

http://www.denkasi.com/blog/?cat=20&pagewith=87#post-87
との記述になり、4ページ目へ飛びます。

2008年5月のアーカイブリストの87番記事を含むページへは

http://www.denkasi.com/blog/?m=200805&pagewith=87#post-87
との記述になり、2ページ目へ飛びます。

語句’IE’で検索した結果リストの87番記事を含むページへは

http://www.denkasi.com/blog/?s=IE&pagewith=87#post-87
との記述になり、2ページ目へ飛びます。

実装はテーマ(スキン)次第となりますが、87番記事単体ページに、色々付加することで、直感的なナビゲーションが構築できるはずです。

※Macだと(FireFox3、Safari3で確認)パーマリンクを設定している場合 #post-87 の部分がキャンセルされてしまうようです。

Comments (1)

TrackBack URL :

2カラムにしてみました。
最大の変更点はカレンダー削除。
ブログにおけるカレンダーの意義は、

  1. 時系列アーカイブをたどるナビゲーション
  2. 更新有無の可視化
  3. 日々更新のちょっとした励み

こんな感じでしょうか。なんか大事な役割を忘れている気もしますが。
1に関しては記事からリストへ飛べるインターフェイスを導入したのでもはや不要です。2,3に関しては「カウンタ」のようなものを感じます。人様はほとんど気にしていない……みたいな。

本文エリアが広がり「コード」部もそこそこ読みやすくなりました(・∀・)

Comments (0)

TrackBack URL :

よくよく考えてみれば、古いまま使っても良かった気もします。
とは言え、バージョンアップしてしまった以上は、調整せねばなりません(ノ∀`)

リビジョン管理を無効に

特に深い事情があるわけではないのですが、なんとなく、DBが重くなりそうな気がして怖いので、無効にしてしまいます。
WordPress2.6のリビジョン管理を無効にする方法 に習いました。いやはやなんとも有り難い事です。

My Category Order

カテゴリの並び順を変えるプラグインです。
このプラグインは、コアファイルの一部(taxonomy.php)を差し替えて使用するのですが、2.6用のバージョンアップがまだ来ていません。どうも、2.6 のtaxonomy.php 自体、細かいバグがあるようで、そのFIXを待っているのかなぁ等と勝手に想像。
とりあえず、taxonomy.php の612行目以下のif分を コレに差し替えて正式対応までお茶を濁してみます。

	if ( 'count' == $orderby )
		$orderby = 'tt.count';
	else if ( 'name' == $orderby )
		$orderby = 't.name';
	else if ( 'slug' == $orderby )
		$orderby = 't.slug';
	else if ( 'term_group' == $orderby )
		$orderby = 't.term_group';
	else if ( 'order' == $orderby )
		$orderby = 't.term_order';
	else
		$orderby = 't.term_id';

Comments (0)

TrackBack URL :