diff --git a/src/Plugin/facets/processor/TermWeightWidgetOrderProcessor.php b/src/Plugin/facets/processor/TermWeightWidgetOrderProcessor.php
index c471a4e..7732370 100644
--- a/src/Plugin/facets/processor/TermWeightWidgetOrderProcessor.php
+++ b/src/Plugin/facets/processor/TermWeightWidgetOrderProcessor.php
@@ -4,6 +4,8 @@
 
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+use Drupal\Core\TypedData\DataReferenceDefinitionInterface;
+use Drupal\facets\FacetInterface;
 use Drupal\facets\Processor\SortProcessorPluginBase;
 use Drupal\facets\Result\Result;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -86,4 +88,21 @@ public function sortResults(Result $a, Result $b) {
     return ($term_a->getWeight() < $term_b->getWeight()) ? -1 : 1;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function supportsFacet(FacetInterface $facet) {
+    $data_definition = $facet->getDataDefinition();
+    $property_definitions = $data_definition->getPropertyDefinitions();
+    foreach ($property_definitions as $definition) {
+      if ($definition instanceof DataReferenceDefinitionInterface
+        && $definition->getDataType() === 'entity_reference'
+        && $definition->getConstraint('EntityType') === 'taxonomy_term'
+      ) {
+        return TRUE;
+      }
+    }
+    return FALSE;
+  }
+
 }
diff --git a/tests/src/Functional/HierarchicalFacetIntegrationTest.php b/tests/src/Functional/HierarchicalFacetIntegrationTest.php
index 9d36464..7f3f220 100644
--- a/tests/src/Functional/HierarchicalFacetIntegrationTest.php
+++ b/tests/src/Functional/HierarchicalFacetIntegrationTest.php
@@ -203,6 +203,35 @@ public function testHierarchySorting() {
     $this->assertStringPosition('Child 2', 'Child 1');
   }
 
+  /**
+   * Tests sorting by weight of a taxonomy term.
+   */
+  public function testWeightSort() {
+    $edit = [
+      'facet_settings[translate_entity][status]' => '1',
+      'facet_sorting[term_weight_widget_order][status]' => '1',
+    ];
+    $this->drupalPostForm($this->facetEditPage, $edit, 'Save');
+
+    $this->parents['Parent 1']->setWeight(15);
+    $this->parents['Parent 1']->save();
+    $this->parents['Parent 2']->setWeight(25);
+    $this->parents['Parent 2']->save();
+
+    $this->drupalGet('search-api-test-fulltext');
+    $this->assertFacetLabel('Parent 1');
+    $this->assertFacetLabel('Parent 2');
+    $this->assertStringPosition('Parent 1', 'Parent 2');
+
+    $this->parents['Parent 2']->setWeight(5);
+    $this->parents['Parent 2']->save();
+
+    $this->drupalGet('search-api-test-fulltext');
+    $this->assertFacetLabel('Parent 1');
+    $this->assertFacetLabel('Parent 2');
+    $this->assertStringPosition('Parent 2', 'Parent 1');
+  }
+
   /**
    * Verify the "Enable parent when child gets disabled" option is working.
    */
diff --git a/tests/src/Functional/ProcessorIntegrationTest.php b/tests/src/Functional/ProcessorIntegrationTest.php
index e6963ed..5e9df76 100644
--- a/tests/src/Functional/ProcessorIntegrationTest.php
+++ b/tests/src/Functional/ProcessorIntegrationTest.php
@@ -146,7 +146,7 @@ public function testBooleanProcessorIntegration() {
 
     $index = $this->getIndex();
 
-    // Index the taxonomy and entity reference fields.
+    // Index a boolean field.
     $boolean_field = new Field($index, $field_name);
     $boolean_field->setType('integer');
     $boolean_field->setPropertyPath($field_name);
@@ -716,6 +716,7 @@ public function testHiddenProcessors() {
     $this->assertSession()->pageTextNotContains('Boolean item label');
     $this->assertSession()->pageTextNotContains('Transform UID to user name');
     $this->assertSession()->pageTextNotContains('Transform entity ID to label');
+    $this->assertSession()->pageTextNotContains('Sort by taxonomy term weight');
   }
 
   /**
