diff --git a/core/modules/comment/migration_templates/d7_comment.yml b/core/modules/comment/migration_templates/d7_comment.yml
index 94a2884..2f843e0 100644
--- a/core/modules/comment/migration_templates/d7_comment.yml
+++ b/core/modules/comment/migration_templates/d7_comment.yml
@@ -16,8 +16,20 @@ process:
     source: pid
   entity_id: nid
   entity_type: 'constants/entity_type'
-  comment_type: comment_type
-  field_name: comment_type
+  comment_type:
+    plugin: static_map
+    source: comment_type
+    map:
+      comment_node_forum: comment_forum
+      comment_node_article: comment
+    bypass: true
+  field_name:
+    plugin: static_map
+    source: comment_type
+    map:
+      comment_node_forum: comment_forum
+      comment_node_article: comment
+    bypass: true
   subject: subject
   uid: uid
   name: name
diff --git a/core/modules/comment/migration_templates/d7_comment_entity_display.yml b/core/modules/comment/migration_templates/d7_comment_entity_display.yml
index 2004505..08f0df4 100644
--- a/core/modules/comment/migration_templates/d7_comment_entity_display.yml
+++ b/core/modules/comment/migration_templates/d7_comment_entity_display.yml
@@ -13,7 +13,12 @@ source:
       weight: 20
 process:
   entity_type: 'constants/entity_type'
-  field_name: bundle
+  field_name:
+    plugin: skip_row_if_in_blacklist
+    source: bundle
+    blacklist:
+      - comment_node_article
+      - comment_node_forum
   view_mode: 'constants/view_mode'
   options: 'constants/options'
   bundle: node_type
diff --git a/core/modules/comment/migration_templates/d7_comment_entity_form_display_subject.yml b/core/modules/comment/migration_templates/d7_comment_entity_form_display_subject.yml
index c27303e..51d8f02 100644
--- a/core/modules/comment/migration_templates/d7_comment_entity_form_display_subject.yml
+++ b/core/modules/comment/migration_templates/d7_comment_entity_form_display_subject.yml
@@ -22,7 +22,12 @@ process:
     map:
       0: true
       1: false
-  bundle: bundle
+  bundle:
+    plugin: skip_row_if_in_blacklist
+    source: bundle
+    blacklist:
+      - comment_node_article
+      - comment_node_forum
 destination:
   plugin: component_entity_form_display
 migration_dependencies:
diff --git a/core/modules/comment/migration_templates/d7_comment_field.yml b/core/modules/comment/migration_templates/d7_comment_field.yml
index b4b3543..b12b4e6 100644
--- a/core/modules/comment/migration_templates/d7_comment_field.yml
+++ b/core/modules/comment/migration_templates/d7_comment_field.yml
@@ -9,7 +9,12 @@ source:
     type: comment
 process:
   entity_type: 'constants/entity_type'
-  field_name: bundle
+  field_name:
+    plugin: skip_row_if_in_blacklist
+    source: bundle
+    blacklist:
+      - comment_node_article
+      - comment_node_forum
   type: 'constants/type'
   'settings/comment_type': bundle
 destination:
diff --git a/core/modules/comment/migration_templates/d7_comment_field_instance.yml b/core/modules/comment/migration_templates/d7_comment_field_instance.yml
index 80a1a51..abc3e6e 100644
--- a/core/modules/comment/migration_templates/d7_comment_field_instance.yml
+++ b/core/modules/comment/migration_templates/d7_comment_field_instance.yml
@@ -12,7 +12,12 @@ process:
   entity_type: 'constants/entity_type'
   label: 'constants/label'
   required: 'constants/required'
-  field_name: bundle
+  field_name:
+    plugin: skip_row_if_in_blacklist
+    source: bundle
+    blacklist:
+      - comment_node_article
+      - comment_node_forum
   bundle: node_type
   'default_value/0/status': 'constants/required'
   'settings/default_mode': default_mode
diff --git a/core/modules/comment/migration_templates/d7_comment_type.yml b/core/modules/comment/migration_templates/d7_comment_type.yml
index 090bfdd..d975935 100644
--- a/core/modules/comment/migration_templates/d7_comment_type.yml
+++ b/core/modules/comment/migration_templates/d7_comment_type.yml
@@ -8,7 +8,12 @@ source:
     entity_type: node
 process:
   target_entity_type_id: 'constants/entity_type'
-  id: bundle
+  id:
+    plugin: skip_row_if_in_blacklist
+    source: bundle
+    blacklist:
+      - comment_node_article
+      - comment_node_forum
   label: label
 destination:
   plugin: entity:comment_type
diff --git a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityDisplayTest.php b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityDisplayTest.php
index 871765b..c478220 100644
--- a/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityDisplayTest.php
+++ b/core/modules/comment/tests/src/Kernel/Migrate/d7/MigrateCommentEntityDisplayTest.php
@@ -50,10 +50,12 @@ protected function assertDisplay($id, $component_id) {
    */
   public function testMigration() {
     $this->assertDisplay('node.page.default', 'comment_node_page');
-    $this->assertDisplay('node.article.default', 'comment_node_article');
+    // Article comments use standard D8 comment field.
+    $this->assertDisplay('node.article.default', 'comment');
     $this->assertDisplay('node.book.default', 'comment_node_book');
     $this->assertDisplay('node.blog.default', 'comment_node_blog');
-    $this->assertDisplay('node.forum.default', 'comment_node_forum');
+    // Forum comments use standard D8 comment_forum field.
+    $this->assertDisplay('node.forum.default', 'comment_forum');
     $this->assertDisplay('node.test_content_type.default', 'comment_node_test_content_type');
   }
 
diff --git a/core/modules/field/migration_templates/d7_field_formatter_settings.yml b/core/modules/field/migration_templates/d7_field_formatter_settings.yml
index 126fd29..65abdbd 100644
--- a/core/modules/field/migration_templates/d7_field_formatter_settings.yml
+++ b/core/modules/field/migration_templates/d7_field_formatter_settings.yml
@@ -26,7 +26,12 @@ process:
       plugin: skip_on_empty
       method: row
   entity_type: entity_type
-  bundle: bundle
+  bundle:
+    plugin: skip_row_if_in_blacklist
+    source: bundle
+    blacklist:
+      - comment_node_article
+      - comment_node_forum
   view_mode:
     -
       plugin: migration_lookup
diff --git a/core/modules/field/migration_templates/d7_field_instance.yml b/core/modules/field/migration_templates/d7_field_instance.yml
index f3518c9..847d749 100644
--- a/core/modules/field/migration_templates/d7_field_instance.yml
+++ b/core/modules/field/migration_templates/d7_field_instance.yml
@@ -11,7 +11,12 @@ source:
 process:
   entity_type: entity_type
   field_name: field_name
-  bundle: bundle
+  bundle:
+    plugin: skip_row_if_in_blacklist
+    source: bundle
+    blacklist:
+      - comment_node_article
+      - comment_node_forum
   label: label
   description: description
   required: required
diff --git a/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml b/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml
index e2bbcf4..57b8f3c 100644
--- a/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml
+++ b/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml
@@ -26,7 +26,12 @@ process:
     -
       plugin: skip_on_empty
       method: row
-  bundle: bundle
+  bundle:
+    plugin: skip_row_if_in_blacklist
+    source: bundle
+    blacklist:
+    - comment_node_article
+    - comment_node_forum
   form_mode: 'constants/form_mode'
   field_name: field_name
   entity_type: entity_type
diff --git a/core/modules/migrate/src/Plugin/migrate/process/SkipRowIfInBlacklist.php b/core/modules/migrate/src/Plugin/migrate/process/SkipRowIfInBlacklist.php
new file mode 100644
index 0000000..9431e02
--- /dev/null
+++ b/core/modules/migrate/src/Plugin/migrate/process/SkipRowIfInBlacklist.php
@@ -0,0 +1,60 @@
+<?php
+
+namespace Drupal\migrate\Plugin\migrate\process;
+
+use Drupal\migrate\ProcessPluginBase;
+use Drupal\migrate\MigrateExecutableInterface;
+use Drupal\migrate\Row;
+use Drupal\migrate\MigrateSkipRowException;
+
+/**
+ * Skips processing the current row when a source value is in blacklist.
+ *
+ * The skip_row_if_in_blacklist process plugin checks whether the source value
+ * is found on the defined blacklist. If the value is on the blacklist,
+ * MigrateSkipRowEception is thrown. Otherwise the value is returned.
+ *
+ * Available configuration keys:
+ * - blacklist: An array of blacklisted values.
+ * - message: (optional) A message to be logged in the {migrate_message_*} table
+ *   for this row. If not set, nothing is logged in the message table.
+ *
+ * Example:
+ *
+ * @code
+ *  process:
+ *    id:
+ *      # Skip the row if 'bundle' is 'foo' or 'bar'.
+ *      plugin: skip_row_if_in_blacklist
+ *      source: bundle
+ *      blacklist:
+ *        - foo
+ *        - bar
+ *      message: "Bundle value is in the blacklist"
+ * @endcode
+ *
+ * If $value is in the blakclist, the row will be skipped and the message
+ * "Bundle value is in the blacklist" will be logged in the message table.
+ * Otherwise, $value will be returned.
+ *
+ * @see \Drupal\migrate\Plugin\MigrateProcessInterface
+ *
+ * @MigrateProcessPlugin(
+ *   id = "skip_row_if_in_blacklist",
+ *   handle_multiples = TRUE
+ * )
+ */
+class SkipRowIfInBlacklist extends ProcessPluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
+    if (in_array($value, $this->configuration['blacklist'])) {
+      $message = !empty($this->configuration['message']) ? $this->configuration['message'] : '';
+      throw new MigrateSkipRowException($message);
+    }
+    return $value;
+  }
+
+}
