WordPressとFlashの連携(カスタムフィールドの取得)
- 2009 年 3月 30 日
前回Custom Field Template pluginで設定したカスタムフィールドの値を取得する為の記録。
カスタムフィードに入力した値は、メタ情報の扱いとなるので、そのままでは本文に載りません。
そこでFlashでカスタムフィールドの値を使えるように値を取り出してxmlに整形する必要があります。
で、この値を取り出す方法だけど、これも便利なプラグインがある。
Get Custom Field Values
がそれで、これを使うと、
<?php echo c2c_get_custom( 'キー', '値の前に付与する文字列', '値の後に付与する文字列' ); ?> |
とするだけでキーのカスタムフィールドの値を取得できる。
第二、第三引数を指定すると、取得する値の前後に文字列を付与した結果が得られます。
例えば、
<?php echo c2c_get_custom( 'title', '<h3>', '</h3>' ); ?> |
とすれば、
<h3>タイトルの値</h3> |
って結果が得られるって寸法。
この結果を表示する先は、以前のエントリーで紹介した5ive.blogさんの「WordPressでFlash用に複数のxmlを出力する方法」に習って専用ページを作ります。専用ページで使うテンプレートにはカスタムフィールドから取得した値をxmlに整形するよう定義する。
Custom Field Template pluginの設定で以下のカスタムフィールドを設定。
[FlV] type = text size = 35 blank = true [Image] type = text size = 35 blank = true [Title] type = text size = 35 blank = true [Release] type = text size = 35 blank = true [Song] type = text size = 35 blank = true [Artist] type = text size = 35 blank = true [Ditail] type = textarea cols = 40 rows = 10 blank = true |
カスタムフィールドの値をxmlに整形するのテンプレートをcms.phpとして定義します。
そしてこれをテンプレートとして新しい固定ページcmsを新設します。
<?php /* Template Name:cms */ ?> <?php header( "Content-Type: text/xml; charset=" . get_option( 'blog_charset' ) ); echo '<?xml version="1.0" encoding="' . get_option( 'blog_charset' ) . '"?' . '>'; ?> <root> <?php query_posts(""); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <entry release="<?php echo c2c_get_custom("Release"); ?>" flv="<?php echo c2c_get_custom("FlV"); ?>" image="<?php echo c2c_get_custom("Image"); ?>" title="<?php echo c2c_get_custom("Title"); ?>" song="<?php echo c2c_get_custom("Song"); ?>" artist="<?php echo c2c_get_custom("Artist"); ?>" > <?php echo c2c_get_custom("Ditail"); ?> </entry> <?php endwhile; ?> <?php endif; ?> </root> |
試しにカスタムフィールドに以下の値を入力してエントリーをしてみる。
[Flv] /wordpress/wp-content/uploads/2009/03/sample.f4v
[Image] /wordpress/wp-content/uploads/2009/03/sample.png”
[Release] 20090112
[Title] sample
[Song] sample_Song
[Artist] sample_Artist
[Ditail] sample_Ditail
エントリーが済んだらcmsページを表示すると以下のようなxmlが出力されます。
<?xml version="1.0" encoding="UTF-8"?> <root> <entry release="20090112" flv="/wordpress/wp-content/uploads/2009/03/sample.f4v" image="/wordpress/wp-content/uploads/2009/03/sample.png" title="sample" song="sample_Song" artist="sample_Artist" > sample_Ditail</entry> </root> |