ページに『投稿』を挿入するWordpress プラグイン:Inline Posts

Inline Postsとは

Wordpressの記事には、ページ(Page)と投稿(Post)の2種類があります。
WordpressのプラグインInline Postsは、ページ中に『投稿』を挿入してくれるプラグインです。
これを使うと、『投稿』をページ内のセクションのようにして扱う事ができるので、過去に書いた『投稿』をまとめてページとして公開するとうような便利な使い方ができます。
作者は、SWXの作者でもあるAral Balkan氏です。実際にSWXFormat.orgのサイトもこのプラグインを使っているようです。

インストール

  1. ここのページのInline Posts Wordpress Pluginのzipアーカイブをダウンロードする
  2. ダウンロードしたzipアーカイブの中身をWordpressのプラグインフォルダに配置して、プラグインをアクティベーションします。

使い方

使い方は簡単で、挿入したい『投稿』のIDを角括弧で2重に囲ってやるだけでOK。例えばIDが43の『投稿』は、

[[43]]

としてやります。
さらに、プラグインUltimate Category Excluderを使えば、メインページに表示したくないカテゴリの『投稿』を非表示にすることもできるので、Inline Postsと組み合わせて使うとかなり便利です。

Haxeに用意されていないクラス・メソッドにアクセス

as3に存在するのに、haxeに無いクラスやメソッドを使いたい場合は_global_オブジェクトを介してアクセスを行う。
例としてflash.utils.describeTypeメソッドをhaxeから使用してみる。

package samples;
import flash.display.Sprite;
import flash.events.Event;
import flash.xml.XML;

class DescribeType extends Sprite
{
	public static function main():Void {
		flash.Lib.current.addChild(new DescribeType());
	}
	public function new() {
		super();
		if (stage != null) {
			initialize();
		}else {
			addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
		}
	}

	private function initialize():Void {
		var describeType:Dynamic->String = untyped __global__["flash.utils.describeType"];
		var xml:XML = new XML(describeType(this));
		trace(xml.toXMLString());
	}
	private function addedToStageHandler(event:Event):Void {
		removeEventListener(event.type , addedToStageHandler);
		initialize();
	}
}

生成されるas3のコードはこんな感じ。

package samples {
	import flash.utils.describeType;
	import haxe.Log;
	import flash.Lib;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.Boot;
	public class DescribeType extends flash.display.Sprite {
		public function DescribeType() : void { if( !flash.Boot.skip_constructor ) {
			super();
			if(this.stage != null) {
				this.initialize();
			}
			else {
				this.addEventListener(flash.events.Event.ADDED_TO_STAGE,this.addedToStageHandler);
			}
		}}

		protected function initialize() : void {
			var describeType : Function = flash.utils.describeType;
			var xml : XML = new XML(describeType(this));
			haxe.Log.trace(xml.toXMLString(),{ fileName : "DescribeType.hx", lineNumber : 23, className : "nl.demonsters.debugger.DescribeType", methodName : "initialize"});
		}

		protected function addedToStageHandler(event : flash.events.Event) : void {
			this.removeEventListener(event.type,this.addedToStageHandler);
			this.initialize();
		}

		static public function main() : void {
			flash.Lib.current.addChild(new nl.demonsters.debugger.DescribeType());
		}

	}
}

jetpackからfirebugコンソールに出力できない

Firefoxの新しいAddonプラットフォームjetpackを導入。
jetpackのチュートリアルには、firebugのコンソールにログを出力できるとあったけど、なんどやっても出力されない。
jetpackのGoogle groupsのこのスレッドによると、Firebug1.4.3以降は新しいAPIを使っていて、jetpackはまだそれに対応してないのが原因みたい。
Mercurialのリポジトリには、修正コードが挙げられているので、次のリリースには修正されるんじゃないかな。
とりあえずは、標準のエラーコンソールを使っていこう。