diff --git a/src/Sulu/Bundle/CategoryBundle/DependencyInjection/SuluCategoryExtension.php b/src/Sulu/Bundle/CategoryBundle/DependencyInjection/SuluCategoryExtension.php
index ba92d22b2ab..1c25abefa8e 100644
--- a/src/Sulu/Bundle/CategoryBundle/DependencyInjection/SuluCategoryExtension.php
+++ b/src/Sulu/Bundle/CategoryBundle/DependencyInjection/SuluCategoryExtension.php
@@ -50,9 +50,9 @@ public function load(array $configs, ContainerBuilder $container)
         }
 
         if (
-            InstalledVersions::isInstalled('sulu/sulu-content-bundle')
-            && \version_compare(InstalledVersions::getVersion('sulu/sulu-content-bundle') ?? '0.0.0', '0.9', '>=')
-            && \version_compare(InstalledVersions::getVersion('sulu/sulu-content-bundle') ?? '0.0.0', '0.10', '<')
+            InstalledVersions::isInstalled('sulu/content-bundle')
+            && \version_compare(InstalledVersions::getVersion('sulu/content-bundle') ?? '0.0.0', '0.9', '>=')
+            && \version_compare(InstalledVersions::getVersion('sulu/content-bundle') ?? '0.0.0', '0.10', '<')
         ) {
             $loader->load('services_content.xml');
         }
diff --git a/src/Sulu/Bundle/CategoryBundle/Infrastructure/Sulu/Content/PropertyResolver/SingleCategorySelectionPropertyResolver.php b/src/Sulu/Bundle/CategoryBundle/Infrastructure/Sulu/Content/PropertyResolver/SingleCategorySelectionPropertyResolver.php
new file mode 100644
index 00000000000..dc8643245c9
--- /dev/null
+++ b/src/Sulu/Bundle/CategoryBundle/Infrastructure/Sulu/Content/PropertyResolver/SingleCategorySelectionPropertyResolver.php
@@ -0,0 +1,47 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * This file is part of Sulu.
+ *
+ * (c) Sulu GmbH
+ *
+ * This source file is subject to the MIT license that is bundled
+ * with this source code in the file LICENSE.
+ */
+
+namespace Sulu\Bundle\CategoryBundle\Infrastructure\Sulu\Content\PropertyResolver;
+
+use Sulu\Bundle\CategoryBundle\Infrastructure\Sulu\Content\ResourceLoader\CategoryResourceLoader;
+use Sulu\Bundle\ContentBundle\Content\Application\ContentResolver\Value\ContentView;
+use Sulu\Bundle\ContentBundle\Content\Application\PropertyResolver\PropertyResolverInterface;
+
+/**
+ * @internal if you need to override this service, create a new service with based on PropertyResolverInterface instead of extending this class
+ *
+ * @final
+ */
+class SingleCategorySelectionPropertyResolver implements PropertyResolverInterface
+{
+    public function resolve(mixed $data, string $locale, array $params = []): ContentView
+    {
+        if (!\is_string($data) || '' === $data) {
+            return ContentView::create([], $params);
+        }
+
+        /** @var string $resourceLoaderKey */
+        $resourceLoaderKey = $params['resourceLoader'] ?? CategoryResourceLoader::getKey();
+
+        return ContentView::createResolvables(
+            $data,
+            $resourceLoaderKey,
+            $params,
+        );
+    }
+
+    public static function getType(): string
+    {
+        return 'single_category_selection';
+    }
+}
diff --git a/src/Sulu/Bundle/CategoryBundle/Resources/config/services_content.xml b/src/Sulu/Bundle/CategoryBundle/Resources/config/services_content.xml
index 84652f9cecd..f2af8f8f933 100644
--- a/src/Sulu/Bundle/CategoryBundle/Resources/config/services_content.xml
+++ b/src/Sulu/Bundle/CategoryBundle/Resources/config/services_content.xml
@@ -4,14 +4,20 @@
     xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
     <services>
         <!-- Property Resolver -->
-        <service id="sulu_category.property_resolver.category_selection"
-                 class="Sulu\Bundle\CategoryBundle\Infrastructure\Content\PropertyResolver\Resolver\CategorySelectionPropertyResolver">
+        <service id="sulu_category.category_selection_property_resolver"
+                 class="Sulu\Bundle\CategoryBundle\Infrastructure\Sulu\Content\PropertyResolver\CategorySelectionPropertyResolver">
+            <tag name="sulu_content.property_resolver"/>
+        </service>
+
+        <service id="sulu_category.single_category_selection_property_resolver"
+                 class="Sulu\Bundle\CategoryBundle\Infrastructure\Sulu\Content\PropertyResolver\CategorySelectionPropertyResolver">
+
             <tag name="sulu_content.property_resolver"/>
         </service>
 
         <!-- Resource Loader -->
-        <service id="sulu_category.resource_loader.category"
-                 class="Sulu\Bundle\CategoryBundle\Infrastructure\Content\ResourceLoader\CategoryResourceLoader">
+        <service id="sulu_category.category_resource_loader"
+                 class="Sulu\Bundle\CategoryBundle\Infrastructure\Sulu\Content\ResourceLoader\CategoryResourceLoader">
             <argument type="service" id="sulu_category.category_manager"/>
 
             <tag name="sulu_content.resource_loader" type="media"/>
diff --git a/src/Sulu/Bundle/ContactBundle/DependencyInjection/SuluContactExtension.php b/src/Sulu/Bundle/ContactBundle/DependencyInjection/SuluContactExtension.php
index ac2fb1c022f..30071c17aa1 100644
--- a/src/Sulu/Bundle/ContactBundle/DependencyInjection/SuluContactExtension.php
+++ b/src/Sulu/Bundle/ContactBundle/DependencyInjection/SuluContactExtension.php
@@ -279,9 +279,9 @@ public function load(array $configs, ContainerBuilder $container)
         $loader->load('command.xml');
 
         if (
-            InstalledVersions::isInstalled('sulu/sulu-content-bundle')
-            && \version_compare(InstalledVersions::getVersion('sulu/sulu-content-bundle') ?? '0.0.0', '0.9', '>=')
-            && \version_compare(InstalledVersions::getVersion('sulu/sulu-content-bundle') ?? '0.0.0', '0.10', '<')
+            InstalledVersions::isInstalled('sulu/content-bundle')
+            && \version_compare(InstalledVersions::getVersion('sulu/content-bundle') ?? '0.0.0', '0.9', '>=')
+            && \version_compare(InstalledVersions::getVersion('sulu/content-bundle') ?? '0.0.0', '0.10', '<')
         ) {
             $loader->load('services_content.xml');
         }
diff --git a/src/Sulu/Bundle/MediaBundle/DependencyInjection/SuluMediaExtension.php b/src/Sulu/Bundle/MediaBundle/DependencyInjection/SuluMediaExtension.php
index 2d2e1fc77e7..6a59c12452a 100644
--- a/src/Sulu/Bundle/MediaBundle/DependencyInjection/SuluMediaExtension.php
+++ b/src/Sulu/Bundle/MediaBundle/DependencyInjection/SuluMediaExtension.php
@@ -366,9 +366,9 @@ public function load(array $configs, ContainerBuilder $container)
         }
 
         if (
-            InstalledVersions::isInstalled('sulu/sulu-content-bundle')
-            && \version_compare(InstalledVersions::getVersion('sulu/sulu-content-bundle') ?? '0.0.0', '0.9', '>=')
-            && \version_compare(InstalledVersions::getVersion('sulu/sulu-content-bundle') ?? '0.0.0', '0.10', '<')
+            InstalledVersions::isInstalled('sulu/content-bundle')
+            && \version_compare(InstalledVersions::getVersion('sulu/content-bundle') ?? '0.0.0', '0.9', '>=')
+            && \version_compare(InstalledVersions::getVersion('sulu/content-bundle') ?? '0.0.0', '0.10', '<')
         ) {
             $loader->load('services_content.xml');
         }
diff --git a/src/Sulu/Bundle/MediaBundle/Resources/config/services_content.xml b/src/Sulu/Bundle/MediaBundle/Resources/config/services_content.xml
index 940c01ca212..c7b7aba89df 100644
--- a/src/Sulu/Bundle/MediaBundle/Resources/config/services_content.xml
+++ b/src/Sulu/Bundle/MediaBundle/Resources/config/services_content.xml
@@ -4,13 +4,13 @@
     xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
     <services>
         <!-- Property Resolver -->
-        <service id="sulu_media.property_resolver.media_selection"
-                 class="Sulu\Bundle\MediaBundle\Infrastructure\Sulu\Content\PropertyResolver\Resolver\MediaSelectionPropertyResolver">
+        <service id="sulu_media.media_selection_property_resolver"
+                 class="Sulu\Bundle\MediaBundle\Infrastructure\Sulu\Content\PropertyResolver\MediaSelectionPropertyResolver">
             <tag name="sulu_content.property_resolver"/>
         </service>
 
         <!-- Resource Loader -->
-        <service id="sulu_media.resource_loader.media"
+        <service id="sulu_media.media_resource_loader"
                  class="Sulu\Bundle\MediaBundle\Infrastructure\Sulu\Content\ResourceLoader\MediaResourceLoader">
             <argument type="service" id="sulu_media.media_manager"/>
 
diff --git a/src/Sulu/Bundle/TagBundle/DependencyInjection/SuluTagExtension.php b/src/Sulu/Bundle/TagBundle/DependencyInjection/SuluTagExtension.php
index 5d80b0b6f0d..c9cf45494da 100644
--- a/src/Sulu/Bundle/TagBundle/DependencyInjection/SuluTagExtension.php
+++ b/src/Sulu/Bundle/TagBundle/DependencyInjection/SuluTagExtension.php
@@ -11,6 +11,7 @@
 
 namespace Sulu\Bundle\TagBundle\DependencyInjection;
 
+use Composer\InstalledVersions;
 use Sulu\Bundle\PersistenceBundle\DependencyInjection\PersistenceExtensionTrait;
 use Sulu\Bundle\TagBundle\Tag\TagInterface;
 use Sulu\Bundle\TagBundle\Tag\TagRepositoryInterface;
@@ -93,5 +94,13 @@ public function load(array $configs, ContainerBuilder $container)
         if (\array_key_exists('SuluTrashBundle', $bundles)) {
             $loader->load('services_trash.xml');
         }
+
+        if (
+            InstalledVersions::isInstalled('sulu/content-bundle')
+            && \version_compare(InstalledVersions::getVersion('sulu/content-bundle') ?? '0.0.0', '0.9', '>=')
+            && \version_compare(InstalledVersions::getVersion('sulu/content-bundle') ?? '0.0.0', '0.10', '<')
+        ) {
+            $loader->load('services_content.xml');
+        }
     }
 }
diff --git a/src/Sulu/Bundle/TagBundle/Resources/config/services_content.xml b/src/Sulu/Bundle/TagBundle/Resources/config/services_content.xml
new file mode 100644
index 00000000000..f20ddf2c6a4
--- /dev/null
+++ b/src/Sulu/Bundle/TagBundle/Resources/config/services_content.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<container xmlns="http://symfony.com/schema/dic/services"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
+    <services>
+        <!-- Content Property Resolvers -->
+        <service id="sulu_tag.tag_selection_property_resolver" class="Sulu\Bundle\TagBundle\Infrastructure\Sulu\Content\PropertyResolver\TagSelectionPropertyResolver">
+            <tag name="sulu_content.property_resolver"/>
+        </service>
+
+        <!-- Content Resource Loaders -->
+        <service id="sulu_tag.tag_resource_loader" class="Sulu\Bundle\TagBundle\Infrastructure\Sulu\Content\ResourceLoader\TagResourceLoader">
+            <argument type="service" id="sulu.repository.tag"/>
+
+            <tag name="sulu_content.resource_loader"/>
+        </service>
+    </services>
+</container>