diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StatusItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StatusItem.php
new file mode 100644
index 0000000..054067b
--- /dev/null
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StatusItem.php
@@ -0,0 +1,17 @@
+<?php
+
+namespace Drupal\Core\Field\Plugin\Field\FieldType;
+
+/**
+ * Defines the 'status' entity field type.
+ *
+ * @FieldType(
+ *   id = "status",
+ *   label = @Translation("Status"),
+ *   description = @Translation("An entity field containing an integer value relating to the entity's status."),
+ *   default_formatter = "number_integer",
+ * )
+ */
+class StatusItem extends IntegerItem {
+
+}
diff --git a/core/modules/views/src/EntityViewsData.php b/core/modules/views/src/EntityViewsData.php
index 61def5a..f2e849d 100644
--- a/core/modules/views/src/EntityViewsData.php
+++ b/core/modules/views/src/EntityViewsData.php
@@ -449,6 +449,13 @@ protected function mapSingleFieldViewsData($table, $field_name, $field_type, $co
         $views_field['sort']['id'] = 'standard';
         break;
 
+      case 'status':
+        $views_field['field']['id'] = 'field';
+        $views_field['argument']['id'] = 'numeric';
+        $views_field['filter']['id'] = 'status';
+        $views_field['sort']['id'] = 'standard';
+        break;
+
       case 'uri':
         // Let's render URIs as URIs by default, not links.
         $views_field['field']['id'] = 'field';
diff --git a/core/modules/views/src/Plugin/views/filter/Status.php b/core/modules/views/src/Plugin/views/filter/Status.php
new file mode 100644
index 0000000..9109680
--- /dev/null
+++ b/core/modules/views/src/Plugin/views/filter/Status.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace Drupal\views\Plugin\views\filter;
+
+/**
+ * Implements a custom filter for status field.
+ *
+ * @ingroup views_filter_handlers
+ *
+ * @ViewsFilter("status")
+ *
+ * @see \Drupal\Core\Field\Plugin\Field\FieldType\StatusItem
+ */
+class Status extends InOperator {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getValueOptions() {
+    if (!isset($this->valueOptions)) {
+      $this->valueOptions = [
+        -1 => $this->t('Archived'),
+        0 => $this->t('Unpublished'),
+        1 => $this->t('Published'),
+        2 => $this->t('Forward revision'),
+      ];
+    }
+
+    return $this->valueOptions;
+  }
+
+}
diff --git a/core/modules/views/views.views.inc b/core/modules/views/views.views.inc
index aca4b8a..24f526b 100644
--- a/core/modules/views/views.views.inc
+++ b/core/modules/views/views.views.inc
@@ -510,6 +510,9 @@ function views_field_default_views_data(FieldStorageConfigInterface $field_stora
         if ($field_storage->getType() == 'boolean') {
           $filter = 'boolean';
         }
+        elseif ($field_storage->getType() == 'status') {
+          $filter = 'status';
+        }
         break;
       case 'text':
       case 'blob':
