Tag: PHP’

DokuWikiを使ってみる

 - by Don

情報を書き溜めておくならブログよりもWikiの方が良さそうです。

自分のコントロール下に情報を置いておきたい場合は自分で設置するしかないなと思って色々試してみました。

日本語でそこそこ使えるWiki

試したのは以下の3つです。

PukiWiki

みんな大好きPukiWiki。伺か関連のサイトとしては駄でべWiki里々Wiki文屋など。大人気です。

PHP製。データベース不要。日本製。

そこそこシンプルな作りが魅力的ではあるけれど、最終更新が2006年ってかなり不安です。

MediaWiki

Wikipediaで使われているWikiエンジンです。超重量級。後ろ盾が確かな分、バージョンアップやバグフィックスも盛んです。

PHP製。データベースが別途必要。リソースは英語ベース、日本語のリソースも充実。

PHP Fogでデフォルトで用意されているので使ってみたけれど、最初のカスタマイズで疲れ果てました。何故か画像のアップロードでサムネイルが作成されないエラーが。サムネイルとか要らない…オプションで無効化できないの…疲れた…。

DokuWiki

名前は聞いたことがあったけど、使ったことはなかったので試してみました。

PHP製。データベース不要。リソースは英語ベース、日本語のリソースもまずまず。

超シンプル。インストール後の設定もURLの正規化くらいであとはデフォルトで十分使えるレベル。ストレスフルなまでのユーザビリティの低さ加減を除けは全く不満はないです。あまりのストレスに耐え切れずテンプレートを探してみましたが輪をかけて使いづらいものがザクザク引っかかりました。唯一まともだと思ったのがarctic-mbo Templateです。大変気に入りました。しばらくこれで使っていこうと思います。

PHP Fogに設置してみた

PHP Fogはフリーでアプリケーションが3つ作れます。此処のWordPressの他にあと2つ残っているのでDokuWiki用に1つ作ってみました。

たいして書き溜めておくようなこともないですが、自分専用ということでまずは運用してみます。

iPhone用の表示とAutoPagerize対応

 - by Don

WPtouch

WordPressをiPhone用に表示するplugin。Free版を入れてみましたが、なかなかきれいに表示してくれます。pluginを有効にするだけという手軽さで、大変気に入りました。

wptouch

wptouch


AutoPagerize対応

他のサイトでもさんざんやってきたので今更ですが、WordPress特有の関数とかもあるので軽くメモ。

single.phpはhead内に既にrel="prev"とrel="next"が入ってるのでclass="autopagerize_page_element"を適当なところに入れるだけで大丈夫。

index.phpに古いページへのリンクがprevious_posts_linkとかいう関数で挿入されていて、簡単にclassを付加できない。そこでfunctions.php内でこんな処理を走らせると良いらしい。

function my_auto_pagerize_rel_filter($content) {
    return "{$content} rel="next"";
}
add_filter('next_posts_link_attributes', 'my_auto_pagerize_rel_filter');

あとはautopagerize_page_elementやらautopagerize_insert_beforeやらを好きなところに入れて終わり。

トラックバックの表示

 - by Don

今日はトラックバックに関連する設定をしていました。

まずGet Recent Commentsをインストール。これはサイドバーにcommentとtrackbackを分離してウィジェットで表示してくれるプラグインです(標準ではcommentとtrackbackが一緒くたに表示されてしまいます)。

ただ、このままだとtrackbackのウィジェットのidがcommentのidと被ってしまいますのでget-recent-comments.phpの該当部分を以下のように修正。

function kjgrc_create_recent_trackbacks( $caller = '')
{
	global $kjgrc_we_are_a_widget,$kjgrc_widget_args;

	// $entries = kjgrc_get_entries($max_comments,$chars_per_comment,$chars_per_word,$format,$query,0,$caller);
	$entries = kjgrc_get_comments2('grt',$caller);
	// If we are a widget: Also care for the title
	if ($kjgrc_we_are_a_widget == TRUE) {
		extract($kjgrc_widget_args);
		$entries = $before_widget . $before_title . kjgrc_get_option("grt","sidebar_title") . $after_title .
		'<div id="get_recent_trackbacks_wrap"><ul>' .
		$entries .
		'</ul></div>' .
		$after_widget;
		$entries = str_replace('id="get-recent-comments"', 'id="get-recent-trackbacks"', $entries);
		return $entries;
	}
	return $entries;
}

次に単一記事に対するtrackback数の表示。comment数は"n comments"とかって表示されてますけどtrackback数も表示したいので。

まず、Trackping Separatorをインストール。

functions.phpあたりに以下の関数を追加。

function trackbacks_popup_link() {
	$c = trackpings('count');
	if ($c === 0) {
		$mes = 'No trackbacks';
	} else if ($c === 1) {
		$mes = '1 trackback';
	} else {
		$mes = $c.' trackbacks';
	}
	echo '<a href="';
	the_permalink();
	echo '#trackback" title="Trackback">'.$mes.' »</a>';
}

index.php, archive.php, single.phpのcomment数を表示している部分の後でこの関数を呼び出します。

しかし、このままでは肝心のtrackbackリストそのものが表示されていません。

comments.phpの最後にテーマのcommentsの部分を参考にしながら追加します。

<?php $trackbacks = trackpings(); ?>
<?php if ($trackbacks) : ?>
<aside id="trackback">
<h2>trackbacks</h2>
	<ol class="trackbacklist">
	<?php foreach ($trackbacks as $comment) : ?>
	<li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
		<div class="quote"><br /><?php comment_text() ?></div>
	<?php comment_author_link() ?> on <a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('F jS, Y') ?> at <?php comment_time() ?> <?php edit_comment_link('edit','  ',''); ?></a>
	</li>
	<?php endforeach; ?>
	</ol>
</aside>
<?php endif; ?>

これでようやくトラックバックが表示されます。疲れた。

TwitterのBOTを引っ越した

 - by Don

land.toサーバのPHPで動かしていたTwitter BOT達(@mesoramen,@denpadokei)をここに移しました。

cloudControlにはcronを動かすオプションは探したけどないっぽいですね。今までFree Web Cron Serviceってところに頼ってましたがどうも重くて使いづらいので、Google App Engineのcronを使ってアクセスすることにしました。使えるツールを増やしておくと出来ることが増えて良いですね。

WordPressの設定

 - by Don

右も左もわからないので他所様の設定を参考にしてみました。

WordPressでブログを作ったらまずやる26項目―SEO・アクセスアップのためのカスタマイズ | 清音のSEOブログ現在アクセスできない状態のようです。

特にSEOバリバリにする気はないけれど、閲覧者にとって見やすいことと、自分が使いやすいことに重点を置いてみます。

テーマは"HTML5"でダッシュボードから検索したらFreeDreamっていうのが引っ掛かって気に入ったのでこれに決めました。

インストール&有効にしたプラグインは以下の通りです。まだ使い方がわかってないのもあります。

  • All in One SEO Pack
  • Canonical URL’s
  • Dagon Design Sitemap Generator
  • FLV Embed
  • Google Analytics
  • Google XML Sitemaps
  • Ktai Style
  • SI CAPTCHA Anti-Spam
  • WP Contact Form III

あと、単一記事の投稿(single.php)を編集してトラックバックURLを表示してみました(comments.phpの方が良かったのかな?)。以下のコードを適当な場所に挿入します。

<?php if ( pings_open() ) : ?>
<br />
TrackBack <abbr title="Universal Resource Locator">URL</abbr> : <input type="text" name="trackback_url" size="80" value="<?php trackback_url() ?>" readonly="readonly" class="trackback-url" onfocus="this.select()" />
<br />
<?php endif; ?>

あと、テーマ自体のバグで、<article id="article"><header id="titre">っていうのが各所に見られたので、<article class="article"><header class="title">に変更して該当するCSSも修正しました。titreはtitleのスペルミスかな。

最後に「ユーザー>あなたのプロフィール」から"ビジュアルリッチエディターを使用しない"にチェック。わざわざ&quot;って書いたのがいちいち全部"に戻されて困るので。

cloudControllのアカウントを作ってみた

 - by Don

PHPのPaasらしいcloudControllのアカウントを作ってみました。

早速WordPressをインストール。まともに使ったことなかったけど高機能ですね。

とりあえず他所のサーバのPHPで動かしていたTwitterBotなどをこちらに移植してみようと考えています。

使い心地が良ければ伺か用のブログもこちらに移転するかも。