Привет. Конкретно я на своем сайте разметил только страницы статей. Просто прописав условие, что разметка будут отображаться только на этом типе страниц (if(get_post_type() == "post")). У schema.org есть сотни объектов подходящих под тут или иную сущность страницы, смотри тут (
https://schema.org/docs/full.html ).
Например атрибуты контактов описаны тут (
https://schema.org/ContactPage ).
Для страниц форума тут (
https://schema.org/DiscussionForumPosting ).
В общем просто просмотри все дерево объектов и выбери, что тебе нужно.
Далее прописав микроразметку для каждого типа страниц, заскриптуй их через if или switch.
Если захочешь узнать больше о принципах работы микроразметки, читай инфу тут (
https://seolab.dp.ua/seo/polnoe_rukovodstvo_po-rab... ).
Касательно различий WebPage и Article, ну если коротко, то они отличаются набором атрибутов которые позволяют описать для поисковой системы два разных типа объектов.