I have a set of site collections (call it 'Personals'). Each of these site collections has a page on the root site that wants to display a feed of 'announcements'. These 'announcements' need to be declared in a centralized location (like in a list on some central site collection). How do I create an 'announcements' feed on each site in 'Personals' that uses as its source the 'announcements' declared in the central location?
This is my best guess on what to do: Make an 'announcement' content type; create a central site collection; create a list that uses the 'announcement' content type on the central site collection and fill it with my announcement items; for each site in 'Personals', setup some sort of content query web part that queries against all items from the central site collection with the content type 'announcement' (or create a custom web part that does this query in code-behind).
What I'm unsure about in the above process is: Is this even remotely the right approach? Where do I declare the 'announcement' content type? On each site collection? Or can I put it in some larger scope? Is there a way to configure out-of-the-box web parts (maybe the Content Query web part?) to query items sourced in a central location? Or do I need to write a custom web part to do this?
Edit: Assume in this scenario that our 'announcements' have extra columns not provided by the OOTB announcements list type. (In actuality, I need to find a way to query items with many different data types, not just announcements, some of these data types don't fit into any of the OOTB content types or list types.)