How to manage wordpress knowledge base/wiki/posts collections

WordPress already provides a built-in mechanism for navigating collections of posts called “Archives”. Taxonomies such as “Category” naturally create a collection of posts – and thus WordPress automatically facilitates taxonomy archives. Meanwhile, pages are intended to display singular, definitive content that is usually timeless.

It sounds to me as though your “Topics” should be top-level terms in the Category taxonomy, and your “Categories/Topic subCateogries” child terms nested under your “Topics” terms. If that is the case, then there’s no reason to recreate WordPress’s built-in archive functionality by manually creating pages and shortcodes – links to your topics and categories should already direct to the proper archive displaying relevant posts. If the archive doesn’t display as you desire, you should alter your theme (or create your own, or alternately a child theme of a third party theme), likely by modifying the theme’s archive.php file to suit your needs.

Instead of manually constructing navigation to your category terms’ archives, you can use functions in your templates such as get_categories() and/or get_category_link() to programmatically construct the appropriate markup.

The above in mind, adding new items to your collections should only consist of creating a new post and selecting or creating the appropriate category on the same screen. No custom pages, no custom shortcodes, no custom queries – no handling category IDs, no creating custom links.

If you wish to programmatically manipulate content in bulk instead of using the WordPress Dashboard, you can use the various WordPress APIs to do so.