90
Wor Press テテテ テテテテテテ XML テテ 2010/1/16 テテテテテテテテテテテテテテテ テテ テ

20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

Embed Size (px)

DESCRIPTION

2010/1/16に行ったWordPress初心者向けの勉強会プレゼンテーションです。

Citation preview

Page 1: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

Wor d Press テーマカスタマイズ&XML 出力

2010/1/16フリーランスシステムエンジニア

上村 崇

Page 2: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

はじめに

Page 3: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

このプレゼンは後で公開しますので

書き写す必要はありません

Page 4: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

質問は随時、挙手で

Page 5: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

それでは本題

Page 6: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

まずはじめに、WordPress のテーマをカスタマイズする方法について

つぎに、XML ファイルを出力する

方法について

Page 7: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

60 分 このプレゼン・テーマのカスタマイズ・ XML 出力

15 分くらい 質問、休憩60 分 次のプレゼン

・カテゴリ内投稿一覧表示

15 分くらい 質問

Page 8: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

WordPress とは

Page 9: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

ブログツールの一つ

Page 10: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

PHP で作られています

Page 11: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

MySQL を使っています

Page 12: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

創始者Matt Mullenweg 氏

26 歳

Page 13: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

日本

全世界

ブログツール比較

Page 14: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

日本

全世界

CMS 比較

Page 15: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

WordPress が2009 年のベスト CMS 賞を獲得

Page 16: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

テーマについて

Page 17: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

テーマは無数にあります

Page 18: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力
Page 19: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力
Page 20: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力
Page 21: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力
Page 22: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力
Page 23: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力
Page 24: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力
Page 25: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

テーマをカスタマイズしましょう!

Page 26: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

もちろんHTMLスタイルシートの知識は必要ですが

Page 27: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

WordPressディレクトリ構成 PHP テンプレート

テンプレートタグ

Page 28: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

WordPress ディレクトリ構成

Page 29: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

themesclassic

初期状態でテーマは 2 つ

Page 30: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

themes

default

とりあえずテーマファイルの置き場所だけ知っていればいいです

Page 31: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

PHP の基本

Page 32: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

まず、普通の HTML ファイルはこんなのです。

Page 33: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<html> <head> <title> 文書のタイトル </title> </head> <body> 文書の本文 </body> </html>

index.html

Page 34: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

同じことを PHP でやると、こうなります。

Page 35: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?phpecho "<html>";echo " <head>";echo " <title> 文書のタイトル </title>";echo " </head>";echo " <body>";echo " 文書の本文 ";echo " </body>";echo "</html>";?>

index.php

Page 36: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

別の方法もあります。

Page 37: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php $title = " 文書のタイトル "; $contents = " 文書の本文 ";?><html> <head> <title><?php echo $title ?></title> </head> <body> <?php echo $contents ?> </body> </html>

index.php

Page 38: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

つまり、PHP を書くときは <?php ?> で囲む

Page 39: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

テンプレートとテンプレートタグ

Page 40: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

ブロックに分けて考えてみます

Page 41: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

sidebar

footer

maincontents

header

Page 42: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

コードで表すとこうなります→

Page 43: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php get_header(); ?>

<?php if ( have_posts() ) : ?><?php while (have_posts()) : the_post(); ?>

<?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

index.php

Page 44: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php get_header(); ?>

<?php if ( have_posts() ) : ?><?php while (have_posts()) : the_post(); ?>

<?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

index.php

WordPressループ(Main Contents)

Page 45: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php get_header(); ?>

<?php if ( have_posts() ) : ?><?php while (have_posts()) : the_post(); ?>

<?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

index.php

sidebar

footer

maincontents

header

Page 46: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php get_header(); ?>

<?php if ( have_posts() ) : ?><?php while (have_posts()) : the_post(); ?>

<?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

index.php

sidebar

footer

maincontents

header

Page 47: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php get_header(); ?>

<?php if ( have_posts() ) : ?><?php while (have_posts()) : the_post(); ?>

<?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

index.php

footer

maincontents

header

sidebar

Page 48: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php get_header(); ?>

<?php if ( have_posts() ) : ?><?php while (have_posts()) : the_post(); ?>

<?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

index.php

sidebarmaincontents

header

footer

Page 49: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php get_header(); ?>

<?php if ( have_posts() ) : ?><?php while (have_posts()) : the_post(); ?>

<?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

index.php

テンプレートタグWordPress 組込の関数

Page 50: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php get_header(); ?>

<?php if ( have_posts() ) : ?><?php while (have_posts()) : the_post(); ?>

<?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

index.phpheader.php

sidebar.phpfooter.php

Page 51: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

default

テンプレート

Page 52: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

Header について詳しく見てみます。

Page 53: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

header

Page 54: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>><head><meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" /><title> <?php wp_title('&laquo;', true, 'right'); ?> <?php bloginfo('name'); ?></title><link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css” /><style type="text/css”> #page { background: url("<?php bloginfo('stylesheet_directory'); ?>/images/kubrickbg-ltr.jpg“) }</style><?php wp_head(); ?></head><body><div id="page"><div id="header" role="banner"><div id="headerimg"> <h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1> <div class="description"><?php bloginfo('description'); ?></div></div></div>

header.php

Page 55: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>><head><meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" /><title> <?php wp_title('&laquo;', true, 'right'); ?> <?php bloginfo('name'); ?></title><link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css” /><style type="text/css”> #page { background: url("<?php bloginfo('stylesheet_directory'); ?>/images/kubrickbg-ltr.jpg“) }</style><?php wp_head(); ?></head><body><div id="page"><div id="header" role="banner"><div id="headerimg"> <h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1> <div class="description"><?php bloginfo('description'); ?></div></div></div>

header.php

URL タイトル

サイトの説明

Page 56: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

URL タイトル

サイトの説明

Page 57: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>><head><meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" /><title> <?php wp_title('&laquo;', true, 'right'); ?> <?php bloginfo('name'); ?></title><link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css” /><style type="text/css”> #page { background: url("<?php bloginfo('stylesheet_directory'); ?>/images/kubrickbg-ltr.jpg“) }</style><?php wp_head(); ?></head><body><div id="page"><div id="header" role="banner"><div id="headerimg"> <h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1> <div class="description"><?php bloginfo('description'); ?></div></div></div>

header.php

Page 58: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>><head><meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" /><title> <?php wp_title('&laquo;', true, 'right'); ?> <?php bloginfo('name'); ?></title><link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css” /><style type="text/css”> #page { background: url("<?php bloginfo('stylesheet_directory'); ?>/images/kubrickbg-ltr.jpg“) }</style><?php wp_head(); ?></head><body><div id="page"><div id="header" role="banner"><div id="headerimg"> <h1><a href="<?php echo get_option('home'); ?>/"><?php bloginfo('name'); ?></a></h1> <div class="description"><?php bloginfo('description'); ?></div></div></div>

header.php

ドキュメントの場所は?

Page 59: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

wordpress codex 検 索

Page 60: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

次に、 WordPress ループの説明

Page 61: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php get_header(); ?>

<?php if ( have_posts() ) : ?><?php while (have_posts()) : the_post(); ?>

<?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

index.php WordPressループ(Main Contents)

footer

header

sidebarmaincontents

Page 62: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

繰り返し

記事タイトル日付

本文

カテゴリ、コメント

Page 63: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?> <div <?php post_class(); ?> id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>“ ><?php the_title(); ?></a></h2>

<small><?php the_time(__('F jS, Y', 'kubrick')) ?></small> <div class="entry"> <?php the_content(__('Read the rest of this entry &raquo;', 'kubrick')); ?> </div> <p class="postmetadata"> <?php printf(__('Posted in %s', 'kubrick'), get_the_category_list(', ')); ?> | <?php edit_post_link(__('Edit', 'kubrick'), '', ' | '); ?> <?php comments_popup_link(__('No Comments &#187;', 'kubrick'), __('1 Comment &#187;', 'kubrick'), __('% Comments &#187;', 'kubrick'), '', __('Comments Closed', 'kubrick') ); ?> </p> </div> <?php endwhile; ?>

<?php else : ?> <h2 class="center"><?php _e('Not Found', 'kubrick'); ?></h2> <p class="center"><?php _e('Sorry, but you are looking for something that isn&#8217;t here.', 'kubrick'); ?></p> <?php get_search_form(); ?><?php endif; ?>

WordPress ループ

Page 64: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?> <div <?php post_class(); ?> id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>“ ><?php the_title(); ?></a></h2>

<small><?php the_time(__('F jS, Y', 'kubrick')) ?></small> <div class="entry"> <?php the_content(__('Read the rest of this entry &raquo;', 'kubrick')); ?> </div> <p class="postmetadata"> <?php printf(__('Posted in %s', 'kubrick'), get_the_category_list(', ')); ?> | <?php edit_post_link(__('Edit', 'kubrick'), '', ' | '); ?> <?php comments_popup_link(__('No Comments &#187;', 'kubrick'), __('1 Comment &#187;', 'kubrick'), __('% Comments &#187;', 'kubrick'), '', __('Comments Closed', 'kubrick') ); ?> </p> </div> <?php endwhile; ?>

<?php else : ?> <h2 class="center"><?php _e('Not Found', 'kubrick'); ?></h2> <p class="center"><?php _e('Sorry, but you are looking for something that isn&#8217;t here.', 'kubrick'); ?></p> <?php get_search_form(); ?><?php endif; ?>

投稿がある場合の処理

投稿がない場合の処理

投稿があれば true 、なければ false

Page 65: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?> <div <?php post_class(); ?> id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>“ ><?php the_title(); ?></a></h2>

<small><?php the_time(__('F jS, Y', 'kubrick')) ?></small> <div class="entry"> <?php the_content(__('Read the rest of this entry &raquo;', 'kubrick')); ?> </div> <p class="postmetadata"> <?php printf(__('Posted in %s', 'kubrick'), get_the_category_list(', ')); ?> | <?php edit_post_link(__('Edit', 'kubrick'), '', ' | '); ?> <?php comments_popup_link(__('No Comments &#187;', 'kubrick'), __('1 Comment &#187;', 'kubrick'), __('% Comments &#187;', 'kubrick'), '', __('Comments Closed', 'kubrick') ); ?> </p> </div> <?php endwhile; ?>

<?php else : ?> <h2 class="center"><?php _e('Not Found', 'kubrick'); ?></h2> <p class="center"><?php _e('Sorry, but you are looking for something that isn&#8217;t here.', 'kubrick'); ?></p> <?php get_search_form(); ?><?php endif; ?>

投稿がある場合の処理

Page 66: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?> <div <?php post_class(); ?> id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>“ ><?php the_title(); ?></a></h2>

<small><?php the_time(__('F jS, Y', 'kubrick')) ?></small> <div class="entry"> <?php the_content(__('Read the rest of this entry &raquo;', 'kubrick')); ?> </div> <p class="postmetadata"> <?php printf(__('Posted in %s', 'kubrick'), get_the_category_list(', ')); ?> | <?php edit_post_link(__('Edit', 'kubrick'), '', ' | '); ?> <?php comments_popup_link(__('No Comments &#187;', 'kubrick'), __('1 Comment &#187;', 'kubrick'), __('% Comments &#187;', 'kubrick'), '', __('Comments Closed', 'kubrick') ); ?> </p> </div> <?php endwhile; ?>

<?php else : ?> <h2 class="center"><?php _e('Not Found', 'kubrick'); ?></h2> <p class="center"><?php _e('Sorry, but you are looking for something that isn&#8217;t here.', 'kubrick'); ?></p> <?php get_search_form(); ?><?php endif; ?>

投稿の数だけループ

投稿がある間 Loop する 投稿 1 つ分の準備

Page 67: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?> <div <?php post_class(); ?> id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>“ ><?php the_title(); ?></a></h2>

<small><?php the_time(__('F jS, Y', 'kubrick')) ?></small> <div class="entry"> <?php the_content(__('Read the rest of this entry &raquo;', 'kubrick')); ?> </div> <p class="postmetadata"> <?php printf(__('Posted in %s', 'kubrick'), get_the_category_list(', ')); ?> |

<?php edit_post_link(__('Edit', 'kubrick'), '', ' | '); ?>

<?php comments_popup_link(__('No Comments &#187;', 'kubrick'), __('1 Comment &#187;', 'kubrick'), __('% Comments &#187;', 'kubrick'), '', __('Comments Closed', 'kubrick') ); ?> </p> </div> <?php endwhile; ?>

<?php else : ?> <h2 class="center"><?php _e('Not Found', 'kubrick'); ?></h2> <p class="center"><?php _e('Sorry, but you are looking for something that isn&#8217;t here.', 'kubrick'); ?></p> <?php get_search_form(); ?><?php endif; ?>

タイトル

本文

全部理解しないといけないの?

Page 68: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

・すべてのコードを理解する必要はない。・イメージにあったテーマを見つけてきて、 それをカスタマイズすればよい。

Page 69: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

default

他のファイルは?

Page 70: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

default

← not found ページ

アーカイブページ

コメントページ

← 共通関数用

← 画像一覧ページ

言語関連ファイル

← リンクページ← 特定の 1 ページ

← テーマのスクリーンショット← 検索ページ

← 1 投稿分の詳細ページ

Page 71: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

テーマのカスタマイズ方法終わり

Page 72: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

つぎに、XML ファイルを出力する

方法について

Page 73: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

「 MT だったら XML の書き出しが比較的簡単に出来るんですが WP だとなかなか難しいみたいで、僕の希望としましては WP を使って XML の簡単な 書き出し方法があればご教授頂きたいなと思います。 RSS や Flash に使うときに便利なので・・・。」

Page 74: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

最新の投稿一覧

カテゴリー毎一覧

XML

Page 75: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

最新の投稿一覧

カテゴリー毎一覧

XML

作る

Page 76: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

仕様:最新の投稿 5 件を XML ファイルに出力します。・日付・タイトル・投稿内容・カテゴリ

Page 77: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

最新の投稿を出す方法はindex.php を参考にできる

Page 78: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力
Page 79: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

・・・

XML 出力イメージ

Page 80: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

Step1:XML を出力するコードを作成します

Page 81: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php /*Template Name: XmlForFlash*/ ?><?php header('Content-Type: text/xml; charset='.get_option('blog_charset'), true); ?><?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.‘>’; ?><root> <?php query_posts("posts_per_page=5"); ?>

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?> <item> <title><![CDATA[<?php echo the_title_rss(); ?>]]></title>

<pubdate><?php echo the_time('Y-m-d H:i:s’); ?></pubdate>

<?php the_category_rss(); ?>

<description><![CDATA[<?php the_content_rss(); ?>]]></description> </item> <?php endwhile; ?>

<?php endif; ?></root>

<?xml version="1.0" encoding=“UTF-8” ?>

タイトル時 刻

本文内容

<categor

y>

</category

>カテゴリ

テンプレートタグで書くと?

Page 82: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php /*Template Name: XmlForFlash*/ ?><?php header('Content-Type: text/xml; charset='.get_option('blog_charset'), true); ?><?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.‘>’; ?><root> <?php query_posts("posts_per_page=5"); ?>

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?> <item> <title><![CDATA[<?php echo the_title_rss(); ?>]]></title>

<pubdate><?php echo the_time('Y-m-d H:i:s’); ?></pubdate>

<?php the_category_rss(); ?>

<description><![CDATA[<?php the_content_rss(); ?>]]></description> </item> <?php endwhile; ?>

<?php endif; ?></root>

続いてループ処理を挿入→

Page 83: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php /*Template Name: XmlForFlash*/ ?><?php header('Content-Type: text/xml; charset='.get_option('blog_charset'), true); ?><?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.‘>’; ?><root> <?php query_posts("posts_per_page=5"); ?>

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?> <item> <title><![CDATA[<?php echo the_title_rss(); ?>]]></title>

<pubdate><?php echo the_time('Y-m-d H:i:s’); ?></pubdate>

<?php the_category_rss(); ?>

<description><![CDATA[<?php the_content_rss(); ?>]]></description> </item> <?php endwhile; ?>

<?php endif; ?></root>

最新の 5 件を取得→

Page 84: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

<?php /*Template Name: XmlForFlash*/ ?><?php header('Content-Type: text/xml; charset='.get_option('blog_charset'), true); ?><?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.‘>’; ?><root> <?php query_posts("posts_per_page=5"); ?>

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?> <item> <title><![CDATA[<?php echo the_title_rss(); ?>]]></title>

<pubdate><?php echo the_time('Y-m-d H:i:s’); ?></pubdate>

<?php the_category_rss(); ?>

<description><![CDATA[<?php the_content_rss(); ?>]]></description> </item> <?php endwhile; ?>

<?php endif; ?></root>

Page 85: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

default

新規作成

Page 86: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

Step2:ファイルを WordPress に登録します

Page 87: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

① 外観 > 編集

② 作ったテンプレートファイルがエントリされていることを確認

Page 88: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

① ページ > 新規追加

③XmlForFlash を選択する

② タイトルを入れる

Page 89: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

保存すると URL が得られます。

Page 90: 20100116 01 Word Pressテンプレートのカスタマイズ&Xml出力

完成!