次の方法で共有


コンテンツ クエリ Web パーツ用に RSS をカスタマイズする

最終更新日: 2010年4月19日

適用対象: SharePoint Server 2010

必要なフィールドとコンテンツを表示するようにコンテンツ クエリ Web パーツをカスタマイズした後では、そのコンテンツの RSS (Really Simple Syndication) フィードを生成するように Web パーツを設定できます。

このトピックでは、コンテンツ クエリ Web パーツのコンテンツを生成する RSS フィードを追加してカスタマイズする方法を説明します。

  • コンテンツ クエリ Web パーツ用に RSS フィードを有効にする方法

  • RSS フィード URL の動作方法

  • コンテンツ クエリ Web パーツ RSS フィード用にカスタム .xsl ファイルを使用する方法

  • コンテンツ クエリ Web パーツ RSS フィードでのキャッシュの問題を解決する方法

コンテンツ クエリ Web パーツのコンテンツ用に RSS フィードを有効にする

コンテンツ クエリ Web パーツのコンテンツを生成する RSS フィードを有効にするには、Web パーツを編集し、[フィードを有効にする] チェック ボックスをオンにします。フィードを有効にした後、RSS フィード アイコンをクリックして、フィードのコンテンツをブラウザーでプレビューします。

RSS フィード URL の動作方法を理解する

コンテンツ クエリ Web パーツ用に RSS をカスタマイズする方法を理解する際に鍵となるのは、RSS フィード URL の各部分の意味とそれが相互作用する方法を理解することです。RSS フィード URL の形式は、**http://servername/_layouts/feed.aspx?xsl=registeredXSL files in the Web.config file&web=webaddress&page=GUID&wp=**GUID です。

フィードの URL には、Feed.aspx ファイルへのパスが含まれます。このファイルは、Feed.xsl ファイルを基にして、Microsoft SharePoint Server 2010 を実行しているサーバーの _layouts フォルダーに生成されます。Feed.aspx ファイルは、RSS フィードを生成しているコンテンツ クエリ Web パーツを調べて、Web パーツが実行しているクエリを判別し、_layouts フォルダーにある Feed.xsl ファイルを使用して、RSS フィード XML を生成します。

各パラメーターに対して指定される値は、SharePoint Server 2010 が RSS フィードを生成するために必要な情報を提供します。

パラメータ

説明

有効な値

xsl

Web パーツが RSS フィードの生成に使用する Rss.xsl ファイルを識別するために使用されるキーへのポインター

web.config ファイルで登録されている .xsl ファイル

Web

RSS フィードを生成しているコンテンツ クエリ Web パーツが格納されている Web サイト

サーバーの相対 URL

Page

RSS フィードを生成しているコンテンツ クエリ Web パーツを含むページ

GUID

Wp

コンテンツ クエリ Web パーツの ID

GUID

XSL パラメーターについての追加情報

コンテンツ クエリ Web パーツは、RSS フィードを簡単に管理できるように設計されています。SharePoint Server 2010 は、各 .xsl ファイルを web.config ファイルで登録します。RSS フィード URL の xsl パラメーターは、パス \Inetpub\wwwroot\wss\VirtualDirectories\portnumber\wpresources にある web.config ファイルで登録されている .xsl ファイルを表します。web.config ファイルの <appsettings> セクションで .xsl ファイルを登録することにより、Feed.aspx ファイルがその .xsl ファイルを使用できるようになります。

<appsettings>
   <add key="FeedXsl1" value="/Style Library/Xsl Style Sheets/Rss.xsl">
</appsettings>

FeedXsl1 の key の値は、RSS フィード URL 内の 1 の xsl パラメーターの値に対応します。

/Style Library/Xsl Style Sheets/Rss.xsl パスの value の値は、スタイル ライブラリでの Rss.xsl ファイルを指します。これは、SharePoint Server 2010 に既定で含まれます。

コンテンツ クエリ Web パーツ用に RSS フィードを有効にするには

  1. コンテンツ クエリ Web パーツを編集します。

  2. [プレゼンテーション] セクションを展開し、[フィードを有効にする] チェック ボックスをオンにします。

  3. RSS フィードをクリックして Internet Explorer でプレビューを表示し、意図したとおりにフィードが動作していることを確認します。

コンテンツ クエリ Web パーツの RSS フィード用にカスタム XSL ファイルを使用する

次のどちらかを行うことで、コンテンツ クエリ Web パーツの RSS フィード用にカスタム .xsl ファイルを使用できます。

  • SharePoint Server 2010 に含まれる既定の Rss.xsl ファイルの編集。これを行うと、すべてのコンテンツ クエリ Web パーツが、更新された同じ Rss.xsl ファイルを使用してフィードを表示するようになります。たとえば、RSS 2.0 スキーマではなく Atom スキーマを使用する Rss.xsl ファイルを使用し、サイト コレクション内のすべてのコンテンツ クエリ Web パーツで Atom を使用するには、このようにします。サイト コレクションは所有していても、SharePoint Server 2010 が実行されているサーバーを所有していない場合は、この方法を使用します。

  • スタイル ライブラリへのカスタム Rss.xsl ファイルの追加と、web.config ファイルでの登録。特定のコンテンツ クエリ Web パーツに適用するカスタム RSS フィードを生成するには、この方法を使用します。また, .xsl ファイルを登録するために SharePoint Server 2010 を実行するサーバーでのローカル管理者権限が必要な場合、Web パーツを編集する複数の方法をサポートする必要がある場合、または web.config ファイルを編集する必要がある場合は、このオプションを使用します。

既定の RSS.xsl ファイルを編集するには

  1. スタイル ライブラリに移動します。

  2. 必要な RSS フィード データを生成するように、Rss.xsl ファイルを編集します。

  3. 変更を保存します。

カスタム RSS .xsl ファイルをスタイル ライブラリに追加し、それを使用するためのファイルを変更するには

  1. スタイル ライブラリに移動します。

  2. [アップロード] をクリックして、スタイル ライブラリにカスタム .xsl ファイルをアップロードします。既定の Rss.xsl ファイルが格納されているのと同じフォルダーにファイルをアップロードしてもかまいません。

    注意

    スタイル ライブラリの .xsl ファイルにアクセスできない場合は、Web パーツ定義 (.wpd) ファイルと関連付けられている ItemXslLink.xsl ファイルを編集することで、コンテンツ クエリ Web パーツをカスタマイズできます。

  3. web.config ファイルを編集し、手順 2 で追加したファイルに対する新しい <appSettings> エントリを追加して、変更を保存します。

    <appSettings>
    ...
       <add key="FeedXsl2" value="/Style Library/Xsl Style Sheets/Rss-custom.xsl" />
    ...
    </appSettings>
    
  4. ContentQueryMain.xsl ファイルをコピーし、コピーをスタイル ライブラリにアップロードして、コンテンツ クエリ Web パーツ用の RSS フィードを生成する .xsl ファイルを変更します。

  5. ContentQueryMain.xsl ファイルのコピーを編集し、次のコードを変更します。次のコードを削除します。

    <xsl:variable name="FeedUrl1" select="concat($SiteUrl,$FeedPageUrl,'xsl=1&amp;web=',$WebUrl,'&amp;page=',$PageId,'&amp;wp=',$WebPartId)" />
    

    そして、このコードでそれを置換します。

    <xsl:variable name="FeedUrl1" select="concat($SiteUrl,$FeedPageUrl,'xsl=2&amp;web=',$WebUrl,'&amp;page=',$PageId,'&amp;wp=',$WebPartId)" />
    
  6. 使用する Main.xsl ファイルを決定するコンテンツ クエリ Web パーツのプロパティを編集することで、コンテンツ クエリ Web パーツContentQueryMain.xsl ファイルのコピーを使用していることを確認します。

    1. ページでコンテンツ クエリ Web パーツを探し、それをエクスポートします。

    2. MainXslLink プロパティを編集します。次のコードを削除します。

      <property name="MainXslLink" type="string" />
      

      そして、このコードでそれを置換します。

      <property name="MainXslLink" type="string">/Style Library/XSL Style Sheets/ContentQueryMain-custom.xsl</property>
      
    3. 変更を保存し、コンテンツ クエリ Web パーツをインポートします。

コンテンツ クエリ Web パーツの RSS フィードでのキャッシュに関する問題を解決する

コンテンツ クエリ Web パーツの RSS フィードを使用する場合、最初にクリックしたコンテンツ クエリ Web パーツ用の RSS フィードが予想に反して継続し、新しいフィードまたは更新されたフィードを購読して表示することができなくなる場合があります。

このような現象は、コンテンツ クエリ Web パーツが継承するデータ フォーム Web パーツのキャッシュが、たとえ xsl プロパティが異なっている場合であっても、動的に作成される Web パーツ用に生成されるのと同じキャッシュ キーを生成するために発生します。その結果、コンテンツ クエリ Web パーツは、最初のページの読み込みでキャッシュに格納されたフィード データを再利用します。

コンテンツ クエリ Web パーツの RSS フィードでのキャッシュに関する問題を解決するには

  1. パス Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS にある Feed.aspx ファイルのコピーを作成し、ファイル名を Feed1.aspx や Feed2.aspx などに変更します。

  2. Rss.xsl ファイルを編集して、xsl パラメーターをそれぞれのフィード番号を指すように変更します。たとえば、Feed1.aspx の場合は xsl=1 と設定し、Feed2.aspx の場合は xsl=2 と設定します。

関連項目

タスク

[方法] カスタム プロパティを使用してコンテンツ クエリ Web パーツをカスタマイズする

[方法] コンテンツ クエリ Web パーツにユーザー設定フィールドを表示する

[方法] コンテンツ クエリ Web パーツ用に RSS をカスタマイズする