diff --git a/core/modules/file/src/Plugin/migrate/cckfield/FileField.php b/core/modules/file/src/Plugin/migrate/cckfield/FileField.php
index 022f01e..3edfef3 100644
--- a/core/modules/file/src/Plugin/migrate/cckfield/FileField.php
+++ b/core/modules/file/src/Plugin/migrate/cckfield/FileField.php
@@ -13,7 +13,8 @@
 
 /**
  * @MigrateCckField(
- *   id = "filefield"
+ *   id = "filefield",
+ *   core = {6,7}
  * )
  */
 class FileField extends CckFieldPluginBase {
diff --git a/core/modules/link/src/Plugin/migrate/cckfield/LinkField.php b/core/modules/link/src/Plugin/migrate/cckfield/LinkField.php
index 327cbda..68ecf40 100644
--- a/core/modules/link/src/Plugin/migrate/cckfield/LinkField.php
+++ b/core/modules/link/src/Plugin/migrate/cckfield/LinkField.php
@@ -12,7 +12,8 @@
 
 /**
  * @MigrateCckField(
- *   id = "link"
+ *   id = "link",
+ *   core = {6}
  * )
  */
 class LinkField extends CckFieldPluginBase {
diff --git a/core/modules/migrate_drupal/src/Annotation/MigrateCckField.php b/core/modules/migrate_drupal/src/Annotation/MigrateCckField.php
index b7edf0e..46021fd 100644
--- a/core/modules/migrate_drupal/src/Annotation/MigrateCckField.php
+++ b/core/modules/migrate_drupal/src/Annotation/MigrateCckField.php
@@ -13,9 +13,10 @@
  * Defines a cckfield plugin annotation object.
  *
  * cckfield plugins are variously responsible for handling the migration of
- * CCK fields from Drupal 6 to Drupal 8. They are allowed to alter CCK-related
- * migrations when migrations are being generated, and can compute destination
- * field types for individual fields during the actual migration process.
+ * CCK fields from Drupal 6 to Drupal 8, and Field API fields from Drupal 7
+ * to Drupal 8. They are allowed to alter CCK-related migrations when migrations
+ * are being generated, and can compute destination field types for individual
+ * fields during the actual migration process.
  *
  * Plugin Namespace: Plugin\migrate\cckfield
  *
@@ -24,6 +25,17 @@
 class MigrateCckField extends Plugin {
 
   /**
+   * @inheritdoc
+   */
+  public function __construct($values) {
+    parent::__construct($values);
+    // Provide default value for core property, in case it's missing.
+    if (empty($this->definition['core'])) {
+      $this->definition['core'] = [6];
+    }
+  }
+
+  /**
    * The plugin ID.
    *
    * @var string
@@ -37,4 +49,11 @@ class MigrateCckField extends Plugin {
    */
   public $type_map = [];
 
+  /**
+   * The Drupal core version(s) this plugin applies to.
+   *
+   * @var int[]
+   */
+  public $core = [];
+
 }
diff --git a/core/modules/node/src/Plugin/migrate/builder/d6/Node.php b/core/modules/node/src/Plugin/migrate/builder/d6/Node.php
index 99f8d45..4b81c10 100644
--- a/core/modules/node/src/Plugin/migrate/builder/d6/Node.php
+++ b/core/modules/node/src/Plugin/migrate/builder/d6/Node.php
@@ -57,8 +57,11 @@ public function buildMigrations(array $template) {
       if (isset($fields[$node_type])) {
         foreach ($fields[$node_type] as $field => $info) {
           if ($this->cckPluginManager->hasDefinition($info['type'])) {
-            $this->getCckPlugin($info['type'])
-              ->processCckFieldValues($migration, $field, $info);
+            $plugin_definition = $this->cckPluginManager->getDefinition($info['type']);
+            if (in_array(6, $plugin_definition['core'])) {
+              $this->getCckPlugin($info['type'])
+                ->processCckFieldValues($migration, $field, $info);
+            }
           }
           else {
             $migration->setProcessOfProperty($field, $field);
diff --git a/core/modules/node/src/Plugin/migrate/builder/d7/Node.php b/core/modules/node/src/Plugin/migrate/builder/d7/Node.php
index 44b124c..1f7917e 100644
--- a/core/modules/node/src/Plugin/migrate/builder/d7/Node.php
+++ b/core/modules/node/src/Plugin/migrate/builder/d7/Node.php
@@ -39,8 +39,11 @@ public function buildMigrations(array $template) {
       if (isset($fields['node'][$bundle])) {
         foreach ($fields['node'][$bundle] as $field => $data) {
           if ($this->cckPluginManager->hasDefinition($data['type'])) {
-            $this->getCckPlugin($data['type'])
-              ->processCckFieldValues($migration, $field, $data);
+            $plugin_definition = $this->cckPluginManager->getDefinition($info['type']);
+            if (in_array(7, $plugin_definition['core'])) {
+              $this->getCckPlugin($data['type'])
+                ->processCckFieldValues($migration, $field, $data);
+            }
           }
           else {
             $migration->setProcessOfProperty($field, $field);
diff --git a/core/modules/taxonomy/src/Plugin/migrate/cckfield/TaxonomyTermReference.php b/core/modules/taxonomy/src/Plugin/migrate/cckfield/TaxonomyTermReference.php
index d6de1ec..8af0a9a 100644
--- a/core/modules/taxonomy/src/Plugin/migrate/cckfield/TaxonomyTermReference.php
+++ b/core/modules/taxonomy/src/Plugin/migrate/cckfield/TaxonomyTermReference.php
@@ -12,7 +12,8 @@
 
 /**
  * @MigrateCckField(
- *   id = "taxonomy_term_reference"
+ *   id = "taxonomy_term_reference",
+ *   core ={6,7}
  * )
  */
 class TaxonomyTermReference extends CckFieldPluginBase {
diff --git a/core/modules/text/src/Plugin/migrate/cckfield/TextField.php b/core/modules/text/src/Plugin/migrate/cckfield/TextField.php
index a386b5f..6d9089c 100644
--- a/core/modules/text/src/Plugin/migrate/cckfield/TextField.php
+++ b/core/modules/text/src/Plugin/migrate/cckfield/TextField.php
@@ -13,7 +13,8 @@
 
 /**
  * @MigrateCckField(
- *   id = "text"
+ *   id = "text",
+ *   core = {6,7}
  * )
  */
 class TextField extends CckFieldPluginBase {
