WordPressとFlashの連携(カスタムフィールドの取得)

  • 2009 年 3月 30 日
  • kosuke

前回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>

“WordPressとFlashの連携(カスタムフィールドの取得)” に コメントはありません

1 件のトラックバック/ピンバック

コメントをどうぞ