Hatena::ブログ(Diary)

minorio のプログラミング・メモ

RSS2

2008-12-11

[][] ページ上に、タグで絞り込んだ最新記事のリストを複数表示する 02:24

カテゴリーをやめてタグだけにしてしまったのだけど、WordPress はいまだになんだかカテゴリーベースっぽい部分がある。タグで記事を絞り込んだりするのがちょっと不便かも。

でも SimpleTags プラグインを使うと結構便利。複数のタグで絞り込むのが簡単になる。タグによる除外も簡単にできればなおいいんだけど。

タグで絞り込んだ最新記事のリストを複数表示するには、ページのテンプレート内に以下のように書いてやればいい。

<?php
$myposts = get_posts('tag=タグ1+タグ2&numberposts=5&orderby=post_date');
foreach($myposts as $post) :
setup_postdata($post);
?>
    <li><a href="<?php the_permalink(); ?>" target="_blank" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>

詳しくは以下を参考に。

テンプレートタグ/get posts - WordPress Codex 日本語版

[][][] Flexible Upload プラグインが動かなくなった 21:34

WordPress で動いている2つのブログのうち、一方で Flexible Upload がプラグインが動かなくなったみたい。

動いている方は WordPress 2.6.3 で、動かない方は WordPress 2.6.1 なので、ひとまずアップグレードしてみようか。

アップグレード後にプラグインを有効化して行く際に、Flexible Upload プラグインコンフリクトしているプラグインがないかどうかも確認できるし。

2.6.5 にしたらエラーが出るようになった

画像アップロードの画面でこんなエラーが出る。

Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, ‘media_admin_css’ was given in /www/users/……./wp-includes/plugin.php on line 311

検索すると修正方法が見つかった。flexible-upload-wp25.php ファイルを少しいじるだけでいいみたい。

To solve the error, please refer: http://wordpress.org/support/topic/186579, and look at alexrabe's reply,

what should be done is to modify “flexible-upload-wp25.php” and find following content,

function fup_set_actions() {

remove_action('media_upload_image', 'media_upload_image');

add_action('media_upload_image', 'fup_media_upload_image');

add_action('admin_head_fup_media_upload_form', 'media_admin_css');

remove_filter('media_send_to_editor', 'image_media_send_to_editor');

add_filter('media_send_to_editor', 'fup_media_send_to_editor', 10, 3);

}

and add red font part

function fup_set_actions() {

remove_action('media_upload_image', 'media_upload_image');

add_action('media_upload_image', 'fup_media_upload_image');

// not longer needed for wp2.6

if ( !function_exists('wp_enqueue_style') )

add_action('admin_head_fup_media_upload_form', 'media_admin_css');

remove_filter('media_send_to_editor', 'image_media_send_to_editor');

add_filter('media_send_to_editor', 'fup_media_send_to_editor', 10, 3);

}

WordPress > Support > [Plugin: Flexible Upload V1.13

あと、同じファイルの fup_admin_header() 関数にも echo 以下の1行を追加する必要があるみたい。

function fup_admin_header() {
    global $fup_rel_dir;
    wp_enqueue_script('fup_swfupload',
                      '/'.$fup_rel_dir.'flexible-upload-wp25js.php',
                      array('prototype'), false);

   echo '<link rel="stylesheet" href="'. get_option('home') .'/wp-admin/css/media.css?ver=20080709" type="text/css" />'. "\n";

}

僕の場合は、サブディレクトリインストールしているので、上のコードではうまく動かない。get_option('siteurl') を使う必要があった。

echo '<link rel="stylesheet" href="'. get_option('siteurl') .'/wp-admin/css/media.css?ver=20080709" type="text/css" media="all" />'. "\n";

エラーの原因は日本語かも?

アップロードの際に Title 欄に日本語を含めるとアップロードが終わっても完了画面に遷移しないような感じ。英数のみでアップロードすればうまく行くようだ。

ビー!ビー!ビー!ビー!ビー!ビー! 2009/07/03 22:50
遠隔ヴァイブ試してきたよーヽ( ・∀・)ノ
街中だってのにスイッチ入れる度にさっちゃんたら足ガクガクしちゃって・・・
見てて興奮しすぎて近くのビルのトイレでやっちゃったし(*´д`*)
ヴァイブ遊びってチョー楽しーよねー(´・∀・`)

http://IvEOy6f.meshiuma.tsukimisou.net/

うっはひーー!!!うっはひーー!!! 2009/07/13 06:59
試しにやってみたらノリノリでセっクスさせてくれたぉ(*゜∀゜)
途中から女の子2人ともテンション上がりすぎて体にローション塗りたくって2人で一生懸命ティムポと顔面にスリスリしまくってくれたわwwwww
これが毎週続くと考えるだけでピンコ勃ちが止まんねぇえwwwwww

http://27URwro.nyahoo.crackedpudding.com/

やっぱ質は落とせないっしょwwwやっぱ質は落とせないっしょwww 2009/07/19 08:14
ビラビラの色って重要じゃね???
とりあえず女は簡単にゲット出来るんだけど、俺はビラビラの色に納得出来ないと絡みたくないんだよね(^^;
だから先に写メ送ってもらって確認してからセクースするのwwwwwwwww
おかげでいつもクン二するのが超楽しいし興奮マックスだわwwwwwwwww

http://XyEb1Lx.okane.torya-acha.com/

うぇwwうぇっうぇwwwwwwwうぇwwうぇっうぇwwwwwww 2009/07/24 18:44
ドーユーリメンバー?私アルパカに似てるタケシねwwwwwww
んぉふーww 雑誌に載ってたのやってみたらコスプレ姫の魔法のフィラチオにハマっちゃって思考回路がフィラチオ中心になってるぉwwwwww
てか気持ちよくしてもらってんのに何で5万貰えんの? カオスwwwww

http://ritq0eR.netoge.bolar.net/

俺の銃が火を噴くぜwwww俺の銃が火を噴くぜwwww 2009/08/04 16:55
始めた途端に誘いの嵐だったからちょっとパニクったわwww
とりま玩具プ レ イ好きのビ ッ チを選んで楽勝で即 ハ メ〜(^-^)v
ハ メ て 5 万 貰 え るとかカルチャーショックだったけど、
これやらないやつはただのバカだろwwwwwwwww

http://ene.creampie2.net/SVEZNYf/

ぎょはぁ!!!!!ぎょはぁ!!!!! 2009/08/08 13:06
ヘイヘイ!!あひひひほはぁwwwwwww ちょwwいきなりごめwwwwww
寝てるだけで5 万もらっちゃって真面目な自分がヴァカらしくなってさwwwww
はぁーいま女シャワー浴びてんだけど、もう1ラウンドでまた5 万くれるってYO!wwwwww
またマグロでさっさと中 出 しするわwwwwwwwww

http://kachi.strowcrue.net/JYlVj9j/

これはいいカオスwこれはいいカオスw 2009/08/15 14:06
自分の事「キャメロン」て呼んでる痛い女と会ったんだがお嬢すぎワロタwww
キャメロンにとっては1 万とか紙きれらしくて、
普通にセ ク ロ ヌするだけで2 0 万くれたしwwwwwwwww
マジキチwwwwwwww

まーそのおかげで俺が潤ってるんだからもっと狂って下さいwwwwwwwww

http://yuzo.plusnote.net/uxAxBWm/

くっちゃいの!くっちゃいの! 2009/08/22 12:39
3日お風呂入らずに来て!!って言われたから
我慢してその通りにしたんだが、行為を始めた途端に
チ ン カ スだらけの俺のテ ィ ン コを咥えてキレイにしてくれたわwwww

とりあえずされるがままでフィニッシュしたんだが、
ボーナス付けるとかイミフな事言われて8 万ゲットしたよ(^^;ラッキー♪

http://okane.d-viking.com/kI8Li5A/

マグローニャマグローニャ 2009/08/26 16:41
もう動くのもマンドクセーから家に来てもらってんのよ。
オレはネトゲに必死で女はフ ェ ラに必死というカオス状態wwwwwww
なんでか毎回3 万貰えてるしイミフすぎwwww

これ始めた俺歓喜www 金無しニートのオマイら涙目wwwww

http://koro.chuebrarin.com/gWlGrYl/

2008-12-10

[][][] Yahoo!Pipes で複数のブログから RSS を抽出して再発行する 17:54

Facebookブログを取り込んでいるのだけど、RSS フィードをひとつしか指定できないので複数のブログから取り込めない。

そこで RSS を1本にまとめてから取り込めばいいのではと考えて Yahoo! Pipes で探してみたら、やはりそういうのがあった。

というわけで、ちょこっと修正して利用しています。楽ちんだ〜。

Pipes: My 2-in-1 feeds by RSS feed creator

2008-12-03

[][][] Simple Tags プラグインのクリックタグ表示をアルファベット順にしたい 17:22

Simple Tags プラグインにはクリックタグというタグ入力支援の機能があって、なかなか便利なんだけど、表示されるタグの候補がタグ ID の順に並んでいて、アルファベット順とかになっていないのでタグの選択漏れや、似たようなタグを複数つくってしまうというようなミスが起こりやすい。

ということで、これをきちんと並ぶようにしたい。時間ができたらやってみよう。

やってみた。

 ↓

コードの修正

/2.5/inc/simple-tags.admin.php ファイルの中の、ajaxSuggestLocal() と ajaxLocalTags() という2つの関数について、SQL 文に「ORDER BY name ASC」の1行を追加する必要がある。

<?php
	// Get all terms
	global $wpdb;
	$terms = $wpdb->get_col("
		SELECT DISTINCT name
		FROM {$wpdb->terms} AS t
		INNER JOIN {$wpdb->term_taxonomy} AS tt ON t.term_id = tt.term_id
		WHERE tt.taxonomy = 'post_tag' 
		ORDER BY name ASC
	");//ORDER BY clause is ADDED BY minorio
	$terms = array_unique($terms);
?>

これで、表示されるタグの候補がタグ ID 順からアルファベット順になる。でも日本語が含まれる場合、ひらがなとカタカナ以外はあいうえお順にはならないけど。しかもひらがなとカタカナは a と b の間に並ぶみたい。

まあちょっとだけ使いやすくなったかな・・。

コードを改善した

SQL の時点で並べ替えてもいまいちだったので、array に対して並べ替えを実行するように変更してみた。これならきちんと アルファベット→ひらがな→カタカナ→漢字 の順番になる。これでいいでしょう。

<?php
	// Get all terms
	global $wpdb;
	$terms = $wpdb->get_col("
		SELECT DISTINCT name
		FROM {$wpdb->terms} AS t
		INNER JOIN {$wpdb->term_taxonomy} AS tt ON t.term_id = tt.term_id
		WHERE tt.taxonomy = 'post_tag' 
	");
	$terms = array_unique($terms);
	sort($terms, SORT_LOCALE_STRING);//ADDED BY minorio
?>

きま爺きま爺 2009/02/06 18:43 有用な情報をありがとうございます。
うちのサイトのタグは全てアルファベットなので自然順アルゴリズムでソートするようにカスタマイズしました。

2008-12-01

[][] カテゴリーとタグの相互変換 22:11

カテゴリーとタグを併用しているのだけど、タグだけでいいような感じになってきたので、カテゴリーをタグに変換してしまうことにした。

「管理 > インポート > カテゴリーとタグの変換」から行う。

ただし、変換の際にすでに同名のタグがあるとうまく行かないことが多いので、きちんと変換できたかどうか確認してからカテゴリーを削除するようにしたい。

[][][] 関連カテゴリーによる絞り込み機能をサイドバーウィジェットに表示するためのコード 14:15

Simple Tags プラグインには関連タグを表示する機能があり、これには関連タグによる絞り込みの機能も付いている。

せっかくなのでこれを活用してみよう。

絞り込みをわかりやすく表示したい

絞り込みの機能はなかなか便利そうだが、デフォルトの表示はちょっとわかりにくい。そこで少し手を加えることに。最終的に以下の画像のようなものが、タグアーカイブの表示時に限ってサイドバーに表示されるようにした。

f:id:minorio:20081202141000p:image

以下のプラグインが必要。

Simple Tags プラグインの設定画面で関連タグを表示するように設定したら、あとは下記のコードをテキストウィジェットに書き込めばオーケー。

<?php 
if(is_tag()) {
echo str_replace("[s]", single_tag_title("", false), st_get_related_tags('xformat=<a href="%tag_link%" title="%tag_name%">%tag_name%</a>(<a href="%tag_link_add%" title="%tag_name%+[s]">+[s]</a>で絞り込み)'));
}
?>

[][][] Simple Tags プラグインタグクラウドの前後に HTML タグを挿入する方法 15:08

Simple Tags プラグインを使ってタグクラウドを表示するメリットは、自動でグラデーションを付けられること、最低投稿数を設定できることなどいくつかあると思うけど、デザイン上、ul タグや li タグで囲みたいというような場合にはウィジェットをそのまま使ったのでは不都合なことがある。

というわけで、例によってテキストウィジェットExec-PHP プラグインを使って回避する方法。タグクラウドに関する設定は

Simple Tags プラグインの設定画面で行い、テキストウィジェットの方には以下のように書くだけ。min_usage=2 なども設定画面の方に書いてもいいと思う。

<ul><li>
<?php echo st_get_tag_cloud('min_usage=2'); ?>
</li></ul>

f:id:minorio:20081202150506p:image

[][][] Simple Tags プラグインのタグ絞り込みのバグ修正 16:07

タグによる絞り込み機能を導入して動作確認していたのだけど、タグのスラッグが日本語の場合にうまく機能していないような・・ということで、調べてみるとバグがあるようですね。

こちらで修正コードを公開してくれている方がいるので、利用させていただこうと思います。

Simple Tagsのバージョンは、1.5.7です。

バグの原因は、

* そもそもAND条件のSQLがない

* Wordpress本体のバグ

でした。Wordpress本体のバグの方は、へたに直すとほかに影響がありそうなので、SimpleTagsの方を修正しました。

2.6で直るかもしれません(未検証)

Wordpressのプラグイン、Simple Tagsのタグ検索のバグを修正してみた | ねねとまつの小部屋

ただし、シングルクォート(')やダブルクォート(")がなんだか変な文字になってしまっているので、そのままコピーしても動きません。というわけで、下に修正済みのコードを添付します。

simple-tags.client.php.zip

しかし、タグによる絞り込み機能まで使う人はあんまりいないかもな〜。

Google サイト内検索とか、慣れてるものの方に行く人が多いような気はする。

ただ、自分でまとめページをつくってそこからタグで絞り込んだ結果へと誘導するような活用法はありそう。

single_tag_title() で取得できるタグ名もオーバーライドしたい

絞り込みしているのに、ページのタイトルなどにそれが反映されないのはユーザービリティに関わると思う。

SimpleTag に single_tag_title() という関数を書き加えればいいかな?

[][][] Simple Tags プラグインのタグ絞り込みを改造 00:07

結局、SimpleTag に st_single_tag_title() という関数を書き加えた。

/2.5/inc/simple-tags.functions.php に以下を追加。

<?php
ここから
/**
 * MODIFIED BY minorio
 *
 */
function st_single_tag_title($prefix = '', $display = true, $joint = '') {
	global $simple_tags;
	$my_tag_name = $simple_tags->combined_tag_title($joint);
	
	if ( $display )
			echo $prefix . $my_tag_name;
	else
			return $my_tag_name;
}
ここまで
?>

さらに、/2.5/simple-tags.client.php に以下を追加。

<?php
ここから
	/**
	 * MODIFIED BY minorio
	 *
	 */
	function combined_tag_title($joint) {
		// Get currents slugs
		$slugs = get_query_var('tag');

		if ( is_array($slugs) ) {
			$slugs_array = $slugs;
		} elseif ( strpos( $slugs, '+') ) {
			$slugs_array = explode('+', $slugs);
		} elseif ( strpos( $slugs, ' ') ) {
			$slugs_array = explode(' ', $slugs);
		}else {
			$slugs_array[] = urldecode($slugs);
		}

		$str = implode($joint, $slugs_array);

		return $str;
	}
ここまで
?>

テキストウィジェットに以下のように書くと、その下の画像のようになる。

<?php 
if(is_tag()) {
echo str_replace("[s]", st_single_tag_title("", false, ""), st_get_related_tags('xformat=<a href="%tag_link_add%" title="[s]∩%tag_name%">[s]∩%tag_name%</a>'));
}
?>

f:id:minorio:20081203001110p:image

さらに絞り込むと以下のようになる。

f:id:minorio:20081203001109p:image

タイトルなどにも絞り込みを反映させる

アーカイブのタイトルなどにも整合性を持たせないとユーザーが混乱する。

絞り込みを反映して以下のようになればいい。

f:id:minorio:20081203001108p:image

これにはテンプレートの修正が必要。テンプレート内の archive.php で、タグ名を出力するところを以下のように書きかえればいい。

<?php if(function_exists('st_single_tag_title')) { st_single_tag_title('', true, ''); } else {single_tag_title();} ?>

ページタイトルも直すには、header.php を修正する。こんな感じ。

<title><?php if ( is_single() ) { wp_title(); } elseif (is_category()) { single_cat_title(); } elseif (is_tag()) { if(function_exists('st_single_tag_title')) { st_single_tag_title('', true, ''); } else {single_tag_title();} } elseif (is_day()) { the_time('Y-m-d'); } elseif (is_month()) { the_time('Y 年 F'); } elseif (is_year()) { the_time('Y 年'); } elseif (is_author()) { ?>著者<?php } ?> | <?php bloginfo('name'); ?></title>

ページタイトルに関しては、All in One SEO プラグインを導入している場合は設定で「Tag Title Format:」のところを空欄にする必要がある。

空欄にした場合に書き換えを行わないようにするハックはこちらを参照のこと。

> WordPress プラグインの All In One SEO Pack を手直し

2008-11-27

[][][] Collapsing Categories v.0.7 Issue 10:44

I tried this plugin together with Collapsing Archives plugin made by the same author.

Collapsing Archives plugin worked like a charm, but Collapsing Categories v.0.7 seems to have an issue explained bellow.

Parent / Child relations issue

The issue is that it sets every category as the child of another category, even when there is no hierarchy set. The top category changes depending on the sort order i.e. the first category becomes top in hierarchy and the second one becomes the child of the first one, and it repeats for all categories. Please see the example below.

In this example, I made no hierarchy among categories. All categories should have been flat. In addition, the Monthly Archive widget, using collapsing-archives plugin, is placed at the bottom of the hierarchy. The two plugins seem to be mixed up? Or just the issue on Collapsing Categories causes this.

f:id:minorio:20081127103729p:image

The setting I used in the above example is this;

f:id:minorio:20081127103728p:image


Plugin Download Page:

http://wordpress.org/extend/plugins/collapsing-categories

Plugin Author's Page:

http://blog.robfelty.com/plugins/collapsing-categories/