サポート » 使い方全般 » WordPress 2.9 にて、RSS Atom フィードの出力に関して

  • 解決済 imaru

    (@imaru)


    こんにちは。WordPress 2.9 をカスタマイズしています。
    カスタマズの参考ににしているテーマは「default」になります。

    自作した header.php を、テーマ「default」の header.php を参考にして、<head>情報を出力させています。
    テーマを「default」を選択したあ場合、下記のフィード情報が出力されます。

    自作したテーマを選択した場合、header.php だけテーマ「default」を流用しても、下記の出力がありません。

    <link rel="alternate" type="application/rss+xml" title="カスタマイズ中 &raquo; フィード" href="http://www.example.jp/index.php/feed" />
    <link rel="alternate" type="application/rss+xml" title="カスタマイズ中 &raquo; コメントフィード" href="http://www.example.jp/index.php/comments/feed" />

    手元に有るWordPress 2.7 対応の書籍では、フィードの出力として

    <?php bloginfo('rss2_url');?>
    <?php bloginfo('atom_url');?>

    等の紹介があり、下記の記述を追加すれば、表示させる事が出来ます。

    <link rel="alternate" type="application/rss+xml" title="カスタマイズ中 &raquo; フィード" href="<?php bloginfo('rss2_url');?>" />
    <link rel="alternate" type="application/rss+xml" title="カスタマイズ中 &raquo; フィード" href="http://www.example.jp/index.php/feed" />

    疑問なのは、テーマ「default」の header.php を流用して、自作のテーマでは
    なぜフィードが表示されないでしょうか。
    ちなみに、自作テーマでは、テーマ「default」で利用されている、kubrick.pot 1式は利用していません。関係が有るのでしょうか。

    アドバイスを頂ければ幸いです。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • モデレーター jim912

    (@jim912)

    imaruさん、こんにちは。

    defaultテーマのheader.php流用で出力されないというのが、解せないのですが、、、
    とりあえず、下記チェックしてみてください。

    • header.phpに<?php wp_head(); ?>があるか?
    • あるなら、プラグインで出力停止などされていないか?

    ちなみに、kubrick.pot等は翻訳用のファイルなので関係ないです。

    トピック投稿者 imaru

    (@imaru)

    jim912 様

    アドバイスをありがとうございます。

    >header.phpに<?php wp_head(); ?>があるか?
    有ります。

    >あるなら、プラグインで出力停止などされていないか?
    プラグインは標準の状態で、全てオフにしました。

    状況は変わりません。
    また、テーマ「default」を header.php 流用した際、<body>以下は削除しています。
    関係が有るでしょうか。

    ちなみに、WP2.9 に付いてくるテーマ「default」の header.php を記載しておきます。何処でフィード情報が出力されているか自分では判りませんでした。

    <?php
    /**
     * @package WordPress
     * @subpackage Default_Theme
     */
    ?>
    <!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 profile="http://gmpg.org/xfn/11">
    <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" media="screen" />
    <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
    
    <style type="text/css" media="screen">
    
    <?php
    // Checks to see whether it needs a sidebar or not
    if ( empty($withcomments) && !is_single() ) {
    ?>
    	#page { background: url("<?php bloginfo('stylesheet_directory'); ?>/images/kubrickbg-<?php bloginfo('text_direction'); ?>.jpg") repeat-y top; border: none; }
    <?php } else { // No sidebar ?>
    	#page { background: url("<?php bloginfo('stylesheet_directory'); ?>/images/kubrickbgwide.jpg") repeat-y top; border: none; }
    <?php } ?>
    
    </style>
    
    <?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?> 
    
    <?php wp_head(); ?>
    </head>
    <body <?php body_class(); ?>>
    <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>
    <hr />

    imaruさんこんにちは。

    私も初心者なりに頑張ってdefaultテーマを参考に自作テーマを使用している一人です。

    defaultテーマのフィードはfunctions.phpの

    automatic_feed_links();

    で出力されているのでfunctions.phpに上記のコードを追加すればフィード情報が出力されるかと思います。

    トピック投稿者 imaru

    (@imaru)

    syoshin 様

    アドバイスをありがとうございました。

    functions.php
    には、まったく気がつきませんでした。
    まだ勉強が足りません。先にファイルの内容を確認すべきでした。

    テーマ「default」の functions.php を自作テーマ入れた所、フィードが表示されました。
    これで喉の小骨が取れた感じです。
    ちなみに、functions.php の記述を以下の内容にしましたが、自作テンプレートでは問題無く利用出来ました。

    <?php
    /**
     * @package WordPress
     * @subpackage Default_Theme
     */
    automatic_feed_links();
    ?>

    ちなみに、automatic_feed_links(); とは、何処を参照しているのでしょうか。
    フィードの種類を Atom等に変更するにはどうしたら良いでしょうか。

    追加の質問で申し訳ありません。

    imaru様

    無事フィードが表示されてよかったです。

    私もWordPress 2.7 対応の書籍をみてテーマを作成していたのですがテーマを作っている途中にどんどんWPがアップグレードしていって、書籍の内容と現在のWPでは違うことがあり正直追いつけない状態です。(汗)

    ちなみに、automatic_feed_links(); とは、何処を参照しているのでしょうか。
    フィードの種類を Atom等に変更するにはどうしたら良いでしょうか。

    ごめんなさい。私も初心者なのでこれに関してはよくわからないです。
    rss2しか使用していないので。

    たぶん、jim912様がいろいろと詳しいので(いつもお世話になっています)
    あとはjim912様におまかせします。

    あまりお役にたてなくてすみません。

    トピック投稿者 imaru

    (@imaru)

    syoshin 様

    再度のアドバイスをありがとうございます。
    とても参考になりました。

    特に急ぐ事でないので、アドバイスを付くのを待ちたいと思います。

    書籍はバージョンアップに追いつけず、バージョンアップで同じテンプレートでも仕様が変わる為、躓く事も多々あります(^^;;。でも基本便利になっていると思いますので、バージョンアップは歓迎です。

    もっともっと勉強していきたいと思います。

    こんなに便利になって行く WordPress は素晴らしいと思います。

    モデレーター jim912

    (@jim912)

    imaruさん、こんにちは。

    automatic_feed_links(); とは、何処を参照しているのでしょうか。

    関数の記述場所で良いのであれば、wp-includes/general_template.phpに記述されていますね。(私もはじめて知りました。)
    関数上部に記述されているコメントから、2.8からの実装になっています。(2.7のheader.phpを改めて見ると、rss2とatomのリンクがベタ書きになっていました。)

    フィードの種類を Atom等に変更するにはどうしたら良いでしょうか。

    get_default_feed関数内のdefault_feedのフィルターフックで atom をreturnするようにすると、フィードがatomに切り替わりますね。
    テーマのfunctions.phpに下記を追記いただければ、フィードがatomになります。

    function change_feed2atom( $feed ) {
    	return 'atom';
    }
    add_action( 'default_feed', 'change_feed2atom' );

    上記は、atomの例ですが、デフォルトであるrss2の他にもrss、rss-http、rdfなどの指定が出来るようです。
    フィードのタイプを選択できるプラグインありそうなものですけどね。

    トピック投稿者 imaru

    (@imaru)

    jim912 様 アドバイスをありがとうございます。
    ご返事が遅くなり申し訳ありませんでした。

    上記の内容、WP2.9.1 にて確認しました。
    正直自分のスキルでは、WordPress 本体のファイルに手を出す事は出来ません。
    教えて頂いたコードを、利用させて頂きたいと思います。

    フィードのタイプを選択できるプラグインありそうなものですけどね。

    有れば嬉しく思います。

    これで、この質問は閉めきらせて頂きます。
    syoshin 様、jim912 様アドバイスをありがとうございました。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「WordPress 2.9 にて、RSS Atom フィードの出力に関して」には新たに返信することはできません。