{"id":113452433,"date":"2024-03-25T13:00:54","date_gmt":"2024-03-25T17:00:54","guid":{"rendered":"https:\/\/thrivethemes.com\/?post_type=ht_kb&#038;p=113452433"},"modified":"2026-01-22T08:56:58","modified_gmt":"2026-01-22T13:56:58","slug":"developing-custom-conditional-display-rules-in-thrive-architect","status":"publish","type":"ht_kb","link":"https:\/\/thrivethemes.com\/docs\/developing-custom-conditional-display-rules-in-thrive-architect\/","title":{"rendered":"How to Develop Custom Conditional Display Rules in Thrive Architect"},"content":{"rendered":"\n<p>In this article, you&#8217;ll learn how to create custom conditional display rules in Thrive Architect. These rules allow you to control when and where content appears based on specific conditions you define.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Important:<\/strong> Creating custom rules requires technical knowledge and should be performed by developers or tech-savvy users familiar with PHP and WordPress development.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">What You&#8217;ll Learn<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#understanding-the-basics\">Understanding the Basics<\/a><\/li>\n\n\n\n<li><a href=\"#defining-the-entity-class\">Defining the Entity Class<\/a><\/li>\n\n\n\n<li><a href=\"#registering-your-entity\">Registering Your Entity<\/a><\/li>\n\n\n\n<li><a href=\"#creating-entity-fields\">Creating Entity Fields<\/a><\/li>\n\n\n\n<li><a href=\"#registering-your-field\">Registering Your Field<\/a><\/li>\n\n\n\n<li><a href=\"#complete-code-examples\">Complete Code Examples<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Understanding the Basics<\/h2>\n\n\n\n<p>Conditional display rules in Thrive Architect consist of two main components:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Entities:<\/strong> The subject or data source (e.g., User, Post, Page)<\/li>\n\n\n\n<li><strong>Fields:<\/strong> Specific properties of the entity that you want to test (e.g., Username, Post Status, Number of Comments)<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Real-World Examples<\/h3>\n\n\n\n<p><strong>Example 1:<\/strong> Create a new field called &#8220;Page \u2013 Demo&#8221; with a subfield &#8220;Title \u2013 Demo&#8221;, plus add a &#8220;Number of comments \u2013 Demo&#8221; field to the existing &#8220;User&#8221; entity.<\/p>\n\n\n\n<p><strong>Example 2:<\/strong> Create a rule that checks whether a user has specific WP Fusion tags assigned to them.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Note:<\/strong> You can find a complete demo example on GitHub: <a href=\"https:\/\/github.com\/ThriveThemes\/conditional-display-api\">Conditional Display API Demo<\/a><\/p>\n<\/blockquote>\n\n\n\n<p>Once activated, your custom fields will appear in the conditional display popup in Thrive Architect:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"994\" height=\"496\" src=\"https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/155287317-6266c41f-3312-4398-871b-9e74ae3f6ca3.webp\" alt=\"\" class=\"wp-image-114141318\" srcset=\"https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:994\/h:496\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/155287317-6266c41f-3312-4398-871b-9e74ae3f6ca3.webp 994w, https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:300\/h:150\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/155287317-6266c41f-3312-4398-871b-9e74ae3f6ca3.webp 300w, https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:768\/h:383\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/155287317-6266c41f-3312-4398-871b-9e74ae3f6ca3.webp 768w, https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:50\/h:25\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/155287317-6266c41f-3312-4398-871b-9e74ae3f6ca3.webp 50w\" sizes=\"(max-width: 994px) 100vw, 994px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Defining the Entity Class<\/h2>\n\n\n\n<p>The first step is to define an entity class that describes your subject and its properties.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Extend the Base Entity Class<\/h3>\n\n\n\n<p>Create a class that extends <code>TCBConditionalDisplayEntity<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class User extends TCBConditionalDisplayEntity {\n    \/**\n     * @return string\n     *\/\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Define the Unique Key<\/h3>\n\n\n\n<p>The <code>get_key()<\/code> function defines a unique identification key for your entity:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public static function get_key() {\n    return 'user_data';\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Set the Display Label<\/h3>\n\n\n\n<p>The <code>get_label()<\/code> function defines the name that will be visible to users in the visual editor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public static function get_label() {\n    return esc_html__( 'User', 'thrive-cb' );\n}<\/code><\/pre>\n\n\n\n<p>This label will appear inside the Thrive Architect editor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"445\" height=\"316\" src=\"https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/2a9549b1-6b68-42d4-94bb-2a40309c787f.png\" alt=\"\" class=\"wp-image-114141319\" srcset=\"https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:445\/h:316\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/2a9549b1-6b68-42d4-94bb-2a40309c787f.png 445w, https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:300\/h:213\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/2a9549b1-6b68-42d4-94bb-2a40309c787f.png 300w, https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:50\/h:36\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/2a9549b1-6b68-42d4-94bb-2a40309c787f.png 50w\" sizes=\"(max-width: 445px) 100vw, 445px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Create the Object Method<\/h3>\n\n\n\n<p>The <code>create_object()<\/code> property creates the entity object containing all the data for individual fields when the condition logic runs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public function create_object( $param ) {\n    $user_id = get_current_user_id();\n    return get_userdata( $user_id );\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Set Display Order (Optional)<\/h3>\n\n\n\n<p>Determine the display order in the modal entity select:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\n * Determines the display order in the modal entity select\n *\n * @return int\n *\/\npublic static function get_display_order() {\n    return 0;\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Registering Your Entity<\/h2>\n\n\n\n<p>After defining your entity class, you need to register it using the <code>tve_register_condition_entity<\/code> function.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Registration Function<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>function tve_register_condition_entity( $entity ) {\n    TCBConditionalDisplayEntity::register( $entity );\n}<\/code><\/pre>\n\n\n\n<p>Use your entity class as the parameter when calling this function.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Complete Entity Class Example<\/h3>\n\n\n\n<p>Here&#8217;s what your complete entity class looks like when everything is put together:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class User extends TCBConditionalDisplayEntity {\n    \/**\n     * @return string\n     *\/\n    public static function get_key() {\n        return 'user_data';\n    }\n\n    public static function get_label() {\n        return esc_html__( 'User', 'thrive-cb' );\n    }\n\n    public function create_object( $param ) {\n        $user_id = get_current_user_id();\n        return get_userdata( $user_id );\n    }\n\n    \/**\n     * Determines the display order in the modal entity select\n     *\n     * @return int\n     *\/\n    public static function get_display_order() {\n        return 0;\n    }\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Creating Entity Fields<\/h2>\n\n\n\n<p>Entity fields fetch the specific data that your condition will be tested against.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example in the Visual Editor<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"445\" height=\"316\" src=\"https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/a0612a72-0bfd-4954-ae2f-42dfb5304a57.png\" alt=\"\" class=\"wp-image-114141320\" srcset=\"https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:445\/h:316\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/a0612a72-0bfd-4954-ae2f-42dfb5304a57.png 445w, https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:300\/h:213\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/a0612a72-0bfd-4954-ae2f-42dfb5304a57.png 300w, https:\/\/mlpxhq8ztvyc.i.optimole.com\/cb:p0Z2.44bbf\/w:50\/h:36\/q:mauto\/f:best\/https:\/\/thrivethemes.com\/wp-content\/uploads\/2024\/03\/a0612a72-0bfd-4954-ae2f-42dfb5304a57.png 50w\" sizes=\"(max-width: 445px) 100vw, 445px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Extend the Field Class<\/h3>\n\n\n\n<p>Create a class that extends <code>TCBConditionalDisplayField<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class User_Wpfusion_Tags extends TCBConditionalDisplayField {\n    \/**\n     * @return string\n     *\/\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Define the Field Key<\/h3>\n\n\n\n<p>The <code>get_key()<\/code> function defines a unique identification key for the field:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public static function get_key() {\n    return 'user_wpfusion_tags';\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Set the Field Label<\/h3>\n\n\n\n<p>The <code>get_label()<\/code> function defines the name that will be visible to users:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public static function get_label() {\n    return __( 'Has WP Fusion tags', TVE_DASH_TRANSLATE_DOMAIN );\n}<\/code><\/pre>\n\n\n\n<p>This label appears inside the visual editor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Define Condition Types<\/h3>\n\n\n\n<p>The <code>get_conditions()<\/code> property describes the type of condition that the field data represents:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public static function get_conditions() {\n    return &#91; 'autocomplete' ];\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Available Condition Types<\/h4>\n\n\n\n<p>Here are the possible operator\/condition keys you can use:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Condition Type<\/th><th>Use Case<\/th><th>Example<\/th><\/tr><\/thead><tbody><tr><td><code>autocomplete<\/code><\/td><td>Text search with suggestions<\/td><td>User \u2192 Username<\/td><\/tr><tr><td><code>autocomplete_hidden<\/code><\/td><td>Hidden autocomplete field<\/td><td>User \u2192 Product Access<\/td><\/tr><tr><td><code>checkbox<\/code><\/td><td>Multiple selection<\/td><td>User \u2192 Role<\/td><\/tr><tr><td><code>date<\/code><\/td><td>Date only<\/td><td>Time \u2192 Current date<\/td><\/tr><tr><td><code>date_and_time<\/code><\/td><td>Date and time without intervals<\/td><td>Custom date\/time fields<\/td><\/tr><tr><td><code>date_and_time_with_intervals<\/code><\/td><td>Date\/time with relative periods<\/td><td>User \u2192 Last logged in<\/td><\/tr><tr><td><code>dropdown<\/code><\/td><td>Single selection<\/td><td>Post \u2192 Post status<\/td><\/tr><tr><td><code>number_comparison<\/code><\/td><td>Numeric comparisons<\/td><td>Post \u2192 Number of comments<\/td><\/tr><tr><td><code>number_equals<\/code><\/td><td>Exact number match<\/td><td>Time \u2192 Day of month<\/td><\/tr><tr><td><code>string_comparison<\/code><\/td><td>Text comparison<\/td><td>Request \u2192 Cookie<\/td><\/tr><tr><td><code>time<\/code><\/td><td>Time only<\/td><td>Time \u2192 Time field<\/td><\/tr><tr><td><code>url_comparison<\/code><\/td><td>URL matching<\/td><td>Referral \u2192 URL<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Link to Entity<\/h3>\n\n\n\n<p>Specify which entity this field belongs to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\n * @return string\n *\/\npublic static function get_entity() {\n    return 'user_data';\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Define the Get Value Method<\/h3>\n\n\n\n<p>The <code>get_value()<\/code> property fetches the value from the entity when the condition logic runs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public function get_value( $user_data ) {\n    $tags = wp_fusion()-&gt;user-&gt;get_tags( $user_data-&gt;ID );\n    return empty( $tags ) ? '' : $tags;\n}<\/code><\/pre>\n\n\n\n<p>The <code>$user_data<\/code> parameter contains the entity data object.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7: Add Options for Multiple-Choice Fields<\/h3>\n\n\n\n<p>For fields with multiple choices (like dropdowns or autocomplete), define the <code>get_options()<\/code> method:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public static function get_options( $selected_values = &#91;], $searched_keyword = '' ) {\n    $levels = &#91;];\n\n    foreach ( wp_fusion()-&gt;settings-&gt;get_available_tags_flat() as $tag ) {\n        if ( static::filter_options( $tag, $tag, $selected_values, $searched_keyword ) ) {\n            $levels&#91;] = &#91;\n                'value' =&gt; (string) $tag,\n                'label' =&gt; $tag,\n            ];\n        }\n    }\n\n    return $levels;\n}<\/code><\/pre>\n\n\n\n<p><strong>Parameters:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$selected_values<\/code> \u2013 Contains the values already chosen<\/li>\n\n\n\n<li><code>$searched_keyword<\/code> \u2013 Used to filter dropdown results<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Complete Field Class Example<\/h3>\n\n\n\n<p>Here&#8217;s the complete field class when everything is assembled:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class User_Wpfusion_Tags extends TCBConditionalDisplayField {\n    \/**\n     * @return string\n     *\/\n    public static function get_key() {\n        return 'user_wpfusion_tags';\n    }\n\n    public static function get_label() {\n        return __( 'Has WP Fusion tags', TVE_DASH_TRANSLATE_DOMAIN );\n    }\n\n    public static function get_conditions() {\n        return &#91; 'autocomplete' ];\n    }\n\n    \/**\n     * @return string\n     *\/\n    public static function get_entity() {\n        return 'user_data';\n    }\n\n    public function get_value( $user_data ) {\n        $tags = wp_fusion()-&gt;user-&gt;get_tags( $user_data-&gt;ID );\n        return empty( $tags ) ? '' : $tags;\n    }\n\n    public static function get_options( $selected_values = &#91;], $searched_keyword = '' ) {\n        $levels = &#91;];\n\n        foreach ( wp_fusion()-&gt;settings-&gt;get_available_tags_flat() as $tag ) {\n            if ( static::filter_options( $tag, $tag, $selected_values, $searched_keyword ) ) {\n                $levels&#91;] = &#91;\n                    'value' =&gt; (string) $tag,\n                    'label' =&gt; $tag,\n                ];\n            }\n        }\n\n        return $levels;\n    }\n\n    public static function get_autocomplete_placeholder() {\n        return __( 'Search tags', TVE_DASH_TRANSLATE_DOMAIN );\n    }\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Registering Your Field<\/h2>\n\n\n\n<p>After creating your field class, register it using the <code>tve_register_condition_field<\/code> function:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\n * Register a new condition field\n *\n * @param TCBConditionalDisplayField|string $field\n *\/\nfunction tve_register_condition_field( $field ) {\n    TCBConditionalDisplayField::register( $field );\n}<\/code><\/pre>\n\n\n\n<p>Use your field class as the parameter when calling this function.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Complete Code Examples<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Creating Custom Condition Types (Advanced)<\/h3>\n\n\n\n<p>If the built-in condition types don&#8217;t meet your needs, you can create your own and register it using <code>tve_register_condition<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\n * Register a new condition\n *\n * @param TCBConditionalDisplayCondition|string $condition\n *\/\nfunction tve_register_condition( $condition ) {\n    TCBConditionalDisplayCondition::register( $condition );\n}<\/code><\/pre>\n\n\n\n<p>Use your custom condition class as the parameter.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Implementation Workflow<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Define your entity class<\/strong> (extends <code>TCBConditionalDisplayEntity<\/code>)<\/li>\n\n\n\n<li><strong>Register the entity<\/strong> using <code>tve_register_condition_entity()<\/code><\/li>\n\n\n\n<li><strong>Create field classes<\/strong> (extends <code>TCBConditionalDisplayField<\/code>)<\/li>\n\n\n\n<li><strong>Register each field<\/strong> using <code>tve_register_condition_field()<\/code><\/li>\n\n\n\n<li><strong>Test in Thrive Architect<\/strong> to ensure fields appear correctly<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>That&#8217;s it! You now know how to create custom conditional display rules in Thrive Architect. Your custom entities and fields will appear in the conditional display settings, allowing you to build powerful, dynamic content displays.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Related Resources<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/thrivethemes.com\/docs\/thrive-themes-action-hooks-custom-functions\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Thrive Themes Action Hooks &amp; Custom Functions<\/a>:<\/strong> Learn about available hooks and filters for extending Thrive Themes.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/thrivethemes.com\/docs\/using-webhooks-to-add-custom-integrations-in-thrive-architect\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Using Webhooks to Add Custom Integrations in Thrive Architect<\/a>:<\/strong> Connect Thrive Architect forms with external services.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/thrivethemes.com\/docs\/extending-thrive-themes-capabilities-as-a-developer\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Extending Thrive Themes Capabilities as a Developer<\/a>:<\/strong> Explore developer resources for advanced customization.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/thrivethemes.com\/tkb\/architect\/\">Thrive Architect Knowledge Base<\/a>:<\/strong> Explore the full Thrive Architect documentation.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In this article, you&#8217;ll learn how to create custom conditional display rules in Thrive Architect. These rules allow you to control when and where content appears based on specific conditions you define. Important: Creating custom rules requires technical knowledge and should be performed by developers or tech-savvy users familiar with PHP and WordPress development. What [&hellip;]<\/p>\n","protected":false},"author":253020,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"ht-kb-category":[34050,34151],"ht-kb-tag":[],"class_list":["post-113452433","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-working-in-thrive-architect","ht_kb_category-developer-documentation","post-wrapper","thrv_wrapper"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/thrivethemes.com\/wp-json\/wp\/v2\/ht-kb\/113452433","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thrivethemes.com\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/thrivethemes.com\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/thrivethemes.com\/wp-json\/wp\/v2\/users\/253020"}],"replies":[{"embeddable":true,"href":"https:\/\/thrivethemes.com\/wp-json\/wp\/v2\/comments?post=113452433"}],"version-history":[{"count":0,"href":"https:\/\/thrivethemes.com\/wp-json\/wp\/v2\/ht-kb\/113452433\/revisions"}],"wp:attachment":[{"href":"https:\/\/thrivethemes.com\/wp-json\/wp\/v2\/media?parent=113452433"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/thrivethemes.com\/wp-json\/wp\/v2\/ht-kb-category?post=113452433"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/thrivethemes.com\/wp-json\/wp\/v2\/ht-kb-tag?post=113452433"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}