{"id":15397,"date":"2026-01-31T09:16:47","date_gmt":"2026-01-31T09:16:47","guid":{"rendered":"https:\/\/www.copebusiness.com\/?p=15397"},"modified":"2026-02-04T14:18:15","modified_gmt":"2026-02-04T14:18:15","slug":"create-custom-wordpress-widget","status":"publish","type":"post","link":"https:\/\/www.copebusiness.com\/es\/wordpress\/crear-clientes-palabra-widget\/","title":{"rendered":"How to Create a Custom WordPress Widget (Step-by-Step Guide)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"15397\" class=\"elementor elementor-15397\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-67dc3e7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"67dc3e7\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-710a7e25\" data-id=\"710a7e25\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-18a1d2a3 elementor-widget elementor-widget-text-editor\" data-id=\"18a1d2a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p class=\"wp-block-paragraph\">WordPress widgets are small blocks of content you can drag and drop into sidebars, footers, or custom widget areas \u2014 perfect for displaying recent posts, contact info, social links, ads, or custom messages. While WordPress includes many default widgets, creating your own custom widget lets you add unique features tailored to your site or client needs (e.g., a custom \u201cLatest Updates\u201d box, personalized greeting, or dynamic content). In 2026, with full-site editing and block themes becoming standard, custom widgets remain a powerful way to extend sidebars and legacy widget areas.<br \/><br \/>At Cope Business, we build custom widgets for clients during our <a href=\"https:\/\/www.copebusiness.com\/technical-seo-services\/technical-seo-audit-service\/\" target=\"_blank\" rel=\"noreferrer noopener\">technical SEO audit services<\/a> to improve user experience, add branded elements, and enhance engagement without relying on heavy third-party plugins.<br \/>This step-by-step guide shows you how to create a simple custom WordPress widget from scratch \u2014 no plugins required. We&#8217;ll build one that displays a custom message with an optional title and link. You can expand it later for more advanced features.<\/p><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">On this page<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #0a0a0a;color:#0a0a0a\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #0a0a0a;color:#0a0a0a\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.copebusiness.com\/es\/wordpress\/crear-clientes-palabra-widget\/#Why_Create_a_Custom_WordPress_Widget\" >Why Create a Custom WordPress Widget?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.copebusiness.com\/es\/wordpress\/crear-clientes-palabra-widget\/#Prerequisites\" >Prerequisites<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.copebusiness.com\/es\/wordpress\/crear-clientes-palabra-widget\/#Step-by-Step_Creating_Your_First_Custom_Widget\" >Step-by-Step: Creating Your First Custom Widget<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.copebusiness.com\/es\/wordpress\/crear-clientes-palabra-widget\/#Method_2_Using_a_Plugin_Faster_for_Non-Coders\" >Method 2: Using a Plugin (Faster for Non-Coders)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.copebusiness.com\/es\/wordpress\/crear-clientes-palabra-widget\/#Best_Practices_for_Custom_Widgets\" >Best Practices for Custom Widgets<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.copebusiness.com\/es\/wordpress\/crear-clientes-palabra-widget\/#Final_Thoughts\" >Final Thoughts<\/a><\/li><\/ul><\/nav><\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Why_Create_a_Custom_WordPress_Widget\"><\/span>Why Create a Custom WordPress Widget?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<ul class=\"wp-block-list\">\n<li><strong>Unique Functionality<\/strong> \u2014 Add exactly what you need (no bloat from third-party plugins)<\/li>\n\n<li><strong>Full Control<\/strong> \u2014 Style and behave exactly how you want<\/li>\n\n<li><strong>Lightweight<\/strong> \u2014 No extra plugin overhead \u2192 faster site<\/li>\n\n<li><strong>Reusable<\/strong> \u2014 Use it across multiple sites or client projects<\/li>\n\n<li><strong>Learning Opportunity<\/strong> \u2014 Great way to understand WordPress development<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Prerequisites\"><\/span>Prerequisites<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<ul class=\"wp-block-list\">\n<li>A local\/staging WordPress site (test safely!)<\/li>\n\n<li>Basic PHP knowledge (we&#8217;ll explain every line)<\/li>\n\n<li>A child theme (recommended) or a custom plugin folder<\/li>\n\n<li>Access to wp-content (via FTP or hosting file manager)<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step-by-Step_Creating_Your_First_Custom_Widget\"><\/span>Step-by-Step: Creating Your First Custom Widget<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<h3 class=\"wp-block-heading\">Step 1: Create a Custom Plugin (Safest &amp; Portable)<\/h3>\n\n<p class=\"wp-block-paragraph\">It&#8217;s better to create a small plugin than add code to functions.php (survives theme changes).<\/p>\n\n<ol class=\"wp-block-list\">\n<li>In \/wp-content\/plugins\/, create a new folder: cope-custom-widget<\/li>\n\n<li>Inside, create a file: cope-custom-widget.php<\/li>\n\n<li>Add this header:<\/li>\n<\/ol>\n\n<p class=\"wp-block-paragraph\">PHP<\/p>\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n<em>\/**<\/em>\n<em> * Plugin Name: Cope Custom Widget<\/em>\n<em> * Plugin URI:  https:\/\/www.copebusiness.com<\/em>\n<em> * Description: Adds a simple custom widget to WordPress<\/em>\n<em> * Version:     1.0<\/em>\n<em> * Author:      Cope Business<\/em>\n<em> * Author URI:  https:\/\/www.copebusiness.com<\/em>\n<em> * License:     GPL2<\/em>\n<em> *\/<\/em><\/code><\/pre>\n\n<h3 class=\"wp-block-heading\">Step 2: Register the Widget Class<\/h3>\n\n<p class=\"wp-block-paragraph\">Add this code below the header:<\/p>\n\n<p class=\"wp-block-paragraph\">PHP<\/p>\n\n<pre class=\"wp-block-code\"><code>class Cope_Custom_Widget extends WP_Widget {\n\n<em>    \/\/ Constructor<\/em>\n    public function __construct() {\n        parent::__construct(\n            'cope_custom_widget',                <em>\/\/ Base ID<\/em>\n            'Cope Custom Message Widget',        <em>\/\/ Name shown in widget area<\/em>\n            array( 'description' =&gt; 'Displays a custom message with optional link.' )\n        );\n    }\n\n<em>    \/\/ Front-end display of widget<\/em>\n    public function widget( $args, $instance ) {\n        echo $args['before_widget'];\n\n        if ( ! empty( $instance['title'] ) ) {\n            echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];\n        }\n\n        echo '&lt;div class=\"cope-custom-message\"&gt;';\n        echo ! empty( $instance['message'] ) ? esc_html( $instance['message'] ) : 'Add your custom message here.';\n        \n        if ( ! empty( $instance['link_url'] ) &amp;&amp; ! empty( $instance['link_text'] ) ) {\n            echo ' &lt;a href=\"' . esc_url( $instance['link_url'] ) . '\"&gt;' . esc_html( $instance['link_text'] ) . '&lt;\/a&gt;';\n        }\n        echo '&lt;\/div&gt;';\n\n        echo $args['after_widget'];\n    }\n\n<em>    \/\/ Back-end widget form<\/em>\n    public function form( $instance ) {\n        $title     = ! empty( $instance['title'] ) ? $instance['title'] : 'Custom Message';\n        $message   = ! empty( $instance['message'] ) ? $instance['message'] : '';\n        $link_url  = ! empty( $instance['link_url'] ) ? $instance['link_url'] : '';\n        $link_text = ! empty( $instance['link_text'] ) ? $instance['link_text'] : 'Learn More';\n        ?&gt;\n        &lt;p&gt;\n            &lt;label for=\"&lt;?php echo esc_attr( $this-&gt;get_field_id( 'title' ) ); ?&gt;\"&gt;Title:&lt;\/label&gt;\n            &lt;input class=\"widefat\" id=\"&lt;?php echo esc_attr( $this-&gt;get_field_id( 'title' ) ); ?&gt;\" name=\"&lt;?php echo esc_attr( $this-&gt;get_field_name( 'title' ) ); ?&gt;\" type=\"text\" value=\"&lt;?php echo esc_attr( $title ); ?&gt;\"&gt;\n        &lt;\/p&gt;\n        &lt;p&gt;\n            &lt;label for=\"&lt;?php echo esc_attr( $this-&gt;get_field_id( 'message' ) ); ?&gt;\"&gt;Message:&lt;\/label&gt;\n            &lt;textarea class=\"widefat\" id=\"&lt;?php echo esc_attr( $this-&gt;get_field_id( 'message' ) ); ?&gt;\" name=\"&lt;?php echo esc_attr( $this-&gt;get_field_name( 'message' ) ); ?&gt;\" rows=\"5\"&gt;&lt;?php echo esc_textarea( $message ); ?&gt;&lt;\/textarea&gt;\n        &lt;\/p&gt;\n        &lt;p&gt;\n            &lt;label for=\"&lt;?php echo esc_attr( $this-&gt;get_field_id( 'link_url' ) ); ?&gt;\"&gt;Link URL:&lt;\/label&gt;\n            &lt;input class=\"widefat\" id=\"&lt;?php echo esc_attr( $this-&gt;get_field_id( 'link_url' ) ); ?&gt;\" name=\"&lt;?php echo esc_attr( $this-&gt;get_field_name( 'link_url' ) ); ?&gt;\" type=\"url\" value=\"&lt;?php echo esc_url( $link_url ); ?&gt;\"&gt;\n        &lt;\/p&gt;\n        &lt;p&gt;\n            &lt;label for=\"&lt;?php echo esc_attr( $this-&gt;get_field_id( 'link_text' ) ); ?&gt;\"&gt;Link Text:&lt;\/label&gt;\n            &lt;input class=\"widefat\" id=\"&lt;?php echo esc_attr( $this-&gt;get_field_id( 'link_text' ) ); ?&gt;\" name=\"&lt;?php echo esc_attr( $this-&gt;get_field_name( 'link_text' ) ); ?&gt;\" type=\"text\" value=\"&lt;?php echo esc_attr( $link_text ); ?&gt;\"&gt;\n        &lt;\/p&gt;\n        &lt;?php\n    }\n\n<em>    \/\/ Update widget values<\/em>\n    public function update( $new_instance, $old_instance ) {\n        $instance = array();\n        $instance['title']     = ( ! empty( $new_instance['title'] ) ) ? sanitize_text_field( $new_instance['title'] ) : '';\n        $instance['message']   = ( ! empty( $new_instance['message'] ) ) ? sanitize_textarea_field( $new_instance['message'] ) : '';\n        $instance['link_url']  = ( ! empty( $new_instance['link_url'] ) ) ? esc_url_raw( $new_instance['link_url'] ) : '';\n        $instance['link_text'] = ( ! empty( $new_instance['link_text'] ) ) ? sanitize_text_field( $new_instance['link_text'] ) : '';\n        return $instance;\n    }\n}<\/code><\/pre>\n\n<h3 class=\"wp-block-heading\">Step 3: Register the Widget<\/h3>\n\n<p class=\"wp-block-paragraph\">Add this at the bottom:<\/p>\n\n<p class=\"wp-block-paragraph\">PHP<\/p>\n\n<pre class=\"wp-block-code\"><code>function cope_register_custom_widget() {\n    register_widget( 'Cope_Custom_Widget' );\n}\nadd_action( 'widgets_init', 'cope_register_custom_widget' );<\/code><\/pre>\n\n<h3 class=\"wp-block-heading\">Step 4: Activate &amp; Test<\/h3>\n\n<ol class=\"wp-block-list\">\n<li>Save the file.<\/li>\n\n<li>Go to <strong>Plugins<\/strong> \u2192 Activate \u201cCope Custom Widget\u201d.<\/li>\n\n<li>Go to <strong>Appearance &gt; Widgets<\/strong> \u2192 Drag \u201cCope Custom Message Widget\u201d to a sidebar.<\/li>\n\n<li>Fill in title, message, and optional link \u2192 Save.<\/li>\n\n<li>Visit your site \u2014 the custom widget appears!<\/li>\n<\/ol>\n\n<p class=\"wp-block-paragraph\"><strong>Pros<\/strong>: Full control, no extra plugins, reusable.<br \/><strong>Cons<\/strong>: Requires basic PHP; test on staging first.<\/p>\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Method_2_Using_a_Plugin_Faster_for_Non-Coders\"><\/span>Method 2: Using a Plugin (Faster for Non-Coders)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p class=\"wp-block-paragraph\">If coding feels overwhelming, use a plugin.<\/p>\n\n<h3 class=\"wp-block-heading\">Recommended Plugin: Widget Options (Free\/Pro) or SiteOrigin Widgets Bundle<\/h3>\n\n<ol class=\"wp-block-list\">\n<li>Install <strong>Widget Options<\/strong> (free).<\/li>\n\n<li>Go to <strong>Appearance &gt; Widgets<\/strong>.<\/li>\n\n<li>Add any widget (Text, Custom HTML, etc.).<\/li>\n\n<li>Use Widget Options to style, align, or add custom classes.<\/li>\n\n<li>For advanced widgets: Install <strong>SiteOrigin Widgets Bundle<\/strong> (free) \u2192 use pre-built widgets or create custom ones.<\/li>\n<\/ol>\n\n<p class=\"wp-block-paragraph\"><strong>Pros<\/strong>: No code, visual controls, easy.<br \/><strong>Cons<\/strong>: Less flexible than custom code.<\/p>\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Best_Practices_for_Custom_Widgets\"><\/span>Best Practices for Custom Widgets<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<ul class=\"wp-block-list\">\n<li>Always use a child theme or custom plugin \u2014 never edit theme files directly.<\/li>\n\n<li>Sanitize all inputs (done in the example code).<\/li>\n\n<li>Test on mobile \u2014 ensure widget looks good in sidebars.<\/li>\n\n<li>Keep it lightweight \u2014 avoid heavy queries inside widgets.<\/li>\n\n<li>Add CSS for styling (Appearance &gt; Customize &gt; Additional CSS).<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Final_Thoughts\"><\/span>Final Thoughts<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p class=\"wp-block-paragraph\">Creating a custom WordPress widget is a great way to add unique functionality without relying on heavy third-party plugins. Start with the code example above \u2014 it\u2019s simple, safe, and expandable.<\/p>\n\n<p class=\"wp-block-paragraph\">Custom widgets give you full control and keep your site lean.<\/p>\n\n<p class=\"wp-block-paragraph\">Need help building custom widgets, optimizing your sidebar, or improving site performance? <a href=\"https:\/\/www.copebusiness.com\/contact\/\" target=\"_blank\" rel=\"noreferrer noopener\">Contact Cope Business<\/a> for a free technical SEO consultation \u2014 we\u2019ll create tailored solutions to enhance your WordPress site exactly the way you want.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>WordPress widgets are small blocks of content you can drag and drop into sidebars, footers, or custom widget areas &mdash; [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":15398,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[177],"tags":[],"class_list":["post-15397","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/www.copebusiness.com\/es\/wp-json\/wp\/v2\/posts\/15397","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.copebusiness.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.copebusiness.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.copebusiness.com\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.copebusiness.com\/es\/wp-json\/wp\/v2\/comments?post=15397"}],"version-history":[{"count":5,"href":"https:\/\/www.copebusiness.com\/es\/wp-json\/wp\/v2\/posts\/15397\/revisions"}],"predecessor-version":[{"id":15636,"href":"https:\/\/www.copebusiness.com\/es\/wp-json\/wp\/v2\/posts\/15397\/revisions\/15636"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.copebusiness.com\/es\/wp-json\/wp\/v2\/media\/15398"}],"wp:attachment":[{"href":"https:\/\/www.copebusiness.com\/es\/wp-json\/wp\/v2\/media?parent=15397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.copebusiness.com\/es\/wp-json\/wp\/v2\/categories?post=15397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.copebusiness.com\/es\/wp-json\/wp\/v2\/tags?post=15397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}