SharePoint Online のモダン サイトでニュースの一覧を表示する
SharePoint Online のモダン サイトには標準のニュース Web パーツがありますが、指定した件数しか表示できません。そのため、新しいニュースが追加されると古いニュースが表示されなくなります。すべて表示 をクリックすればすべてのニュースを確認できますが、ひと手間かかることや、タイトルを非表示にしている場合は表示されないため、やや不便です。可能であれば Web パーツとして一覧表示したいと考えました。
結論として、件数の制限なく表示するにはドキュメント ライブラリの Web パーツを使う方法が適しています。[1] さっそくドキュメント ライブラリの Web パーツを追加してサイト ページを表示します。
ファイル名だけではどのニュースかわかりにくいです。新しく すべてのニュース という名前でビューを作成し、名前 列の代わりに タイトル 列を表示するようにします。
ほぼ目的通りですが、少しだけ課題があります。サイト ページには通常のページとニュースのページが混在しているため、ニュースだけを表示したいです。ニュースかどうかは 昇格された状態 (PromotedState) 列で判別できますが、既定では非表示になっており、UI からはフィルター設定ができません。そのため、PowerShell で操作する必要があります。方法は 2 通りあります。
- 一時的に 昇格された状態 列を表示する
- ビューの CAML を直接修正する
今回は PnP PowerShell を使用し、一度で設定できる後者の方法を紹介します。スクリプトは以下の通りです。
$SITE_URL = '{{site-url}}'
$LIST_NAME = '{{list-name}}'
$VIEW_NAME = '{{view-name}}'
$CAML = @'
<Where>
<Eq>
<FieldRef Name="PromotedState" />
<Value Type="Number">2</Value>
</Eq>
</Where>
'@
Connect-PnPOnline -Url $SITE_URL -Credentials (Get-Credential)
Get-PnPView -List $LIST_NAME -Identity $VIEW_NAME | Set-PnPView -Values @{ ViewQuery = $CAML }
実行すると、これまで表示されていた ホーム がなくなっていることが確認できます。これでニュースの一覧を表示できるようになりました。
-
注意点として、ドキュメント ライブラリの Web パーツは自身のサイトのドキュメント ライブラリしか表示できないという制約があります。 ↩︎
Discussion