/* Widget Name: Button Description: Create a custom button with flexible styling, icon support, and click tracking functionality. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/button-widget-documentation/ Keywords: event, icon, link */ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-button', __( 'SiteOrigin Button', 'so-widgets-bundle' ), array( 'description' => __( 'Create a custom button with flexible styling, icon support, and click tracking functionality.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/button-widget-documentation/', ), array( ), false, plugin_dir_path( __FILE__ ) ); } public function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '780px', 'description' => __( 'This setting controls when the Mobile Align setting will be used. The default value is 780px.', 'so-widgets-bundle' ), ), ); } public function initialize() { $this->register_frontend_styles( array( array( 'sow-button-base', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), SOW_BUNDLE_VERSION, ), ) ); } public function get_widget_form() { return array( 'text' => array( 'type' => 'text', 'label' => __( 'Button Text', 'so-widgets-bundle' ), ), 'url' => array( 'type' => 'link', 'label' => __( 'Destination URL', 'so-widgets-bundle' ), 'allow_shortcode' => true, ), 'new_window' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Open in a new window', 'so-widgets-bundle' ), ), 'download' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Download', 'so-widgets-bundle' ), 'description' => __( 'The Destination URL will be downloaded when a user clicks on the button.', 'so-widgets-bundle' ), ), 'button_icon' => array( 'type' => 'section', 'label' => __( 'Icon', 'so-widgets-bundle' ), 'fields' => array( 'icon_selected' => array( 'type' => 'icon', 'label' => __( 'Icon', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __( 'Icon Color', 'so-widgets-bundle' ), ), 'icon' => array( 'type' => 'media', 'label' => __( 'Image Icon', 'so-widgets-bundle' ), 'description' => __( 'Replaces the icon with your own image icon.', 'so-widgets-bundle' ), ), 'icon_placement' => array( 'type' => 'select', 'label' => __( 'Icon Placement', 'so-widgets-bundle' ), 'default' => 'left', 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), 'design' => array( 'type' => 'section', 'label' => __( 'Design and Layout', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'width' => array( 'type' => 'measurement', 'label' => __( 'Width', 'so-widgets-bundle' ), 'description' => __( 'Leave blank to let the button resize according to content.', 'so-widgets-bundle' ), ), 'align' => array( 'type' => 'select', 'label' => __( 'Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'mobile_align' => array( 'type' => 'select', 'label' => __( 'Mobile Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'theme' => array( 'type' => 'select', 'label' => __( 'Button Theme', 'so-widgets-bundle' ), 'default' => 'flat', 'options' => array( 'atom' => __( 'Atom', 'so-widgets-bundle' ), 'flat' => __( 'Flat', 'so-widgets-bundle' ), 'wire' => __( 'Wire', 'so-widgets-bundle' ), ), ), 'button_color' => array( 'type' => 'color', 'label' => __( 'Button Color', 'so-widgets-bundle' ), ), 'text_color' => array( 'type' => 'color', 'label' => __( 'Text Color', 'so-widgets-bundle' ), ), 'hover' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Use hover effects', 'so-widgets-bundle' ), 'state_emitter' => array( 'callback' => 'conditional', 'args' => array( 'hover[show]: val', 'hover[hide]: ! val', ), ), ), 'hover_background_color' => array( 'type' => 'color', 'label' => __( 'Hover Background Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'hover_text_color' => array( 'type' => 'color', 'label' => __( 'Hover Text Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default', ), 'font_size' => array( 'type' => 'measurement', 'label' => __( 'Font Size', 'so-widgets-bundle' ), 'default' => '1em', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __( 'Icon Size', 'so-widgets-bundle' ), 'default' => '1.3em', ), 'padding' => array( 'type' => 'measurement', 'label' => __( 'Padding', 'so-widgets-bundle' ), 'default' => '1em', ), 'rounding' => array( 'type' => 'multi-measurement', 'label' => __( 'Rounding', 'so-widgets-bundle' ), 'default' => '0.25em 0.25em 0.25em 0.25em', 'measurements' => array( 'top' => array( 'label' => __( 'Top', 'so-widgets-bundle' ), ), 'right' => array( 'label' => __( 'Right', 'so-widgets-bundle' ), ), 'bottom' => array( 'label' => __( 'Bottom', 'so-widgets-bundle' ), ), 'left' => array( 'label' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), ), 'attributes' => array( 'type' => 'section', 'label' => __( 'Other Attributes and SEO', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'id' => array( 'type' => 'text', 'label' => __( 'Button ID', 'so-widgets-bundle' ), 'description' => __( 'An ID attribute allows you to target this button in JavaScript.', 'so-widgets-bundle' ), ), 'classes' => array( 'type' => 'text', 'label' => __( 'Button Classes', 'so-widgets-bundle' ), 'description' => __( 'Additional CSS classes added to the button link.', 'so-widgets-bundle' ), ), 'title' => array( 'type' => 'text', 'label' => __( 'Title Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a title attribute to the button link.', 'so-widgets-bundle' ), ), 'on_click' => array( 'type' => 'text', 'label' => __( 'Onclick', 'so-widgets-bundle' ), 'description' => __( 'Run this JavaScript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle' ), 'onclick' => true, ), 'rel' => array( 'type' => 'text', 'label' => __( 'Rel Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a rel attribute to the button link.', 'so-widgets-bundle' ), ), ), ), ); } public function get_style_name( $instance ) { if ( empty( $instance['design']['theme'] ) ) { return 'atom'; } return $instance['design']['theme']; } /** * Get the variables for the Button Widget. * * @return array */ public function get_template_variables( $instance, $args ) { $button_attributes = array(); $attributes = $instance['attributes']; $classes = ! empty( $attributes['classes'] ) ? $attributes['classes'] : ''; if ( ! empty( $classes ) ) { $classes .= ' '; } $classes .= 'sowb-button ow-icon-placement-' . $instance['button_icon']['icon_placement']; if ( ! empty( $instance['design']['hover'] ) ) { $classes .= ' ow-button-hover'; } $button_attributes['class'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $classes ) ) ); if ( ! empty( $instance['new_window'] ) ) { $button_attributes['target'] = '_blank'; $button_attributes['rel'] = 'noopener noreferrer'; } if ( ! empty( $instance['download'] ) ) { $button_attributes['download'] = null; } if ( ! empty( $attributes['id'] ) ) { $button_attributes['id'] = $attributes['id']; } if ( ! empty( $attributes['title'] ) ) { $button_attributes['title'] = $attributes['title']; } if ( ! empty( $attributes['rel'] ) ) { if ( isset( $button_attributes['rel'] ) ) { $button_attributes['rel'] .= " $attributes[rel]"; } else { $button_attributes['rel'] = $attributes['rel']; } } $icon_image_url = ''; if ( ! empty( $instance['button_icon']['icon'] ) ) { $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] ); if ( ! empty( $attachment ) ) { $icon_image_url = $attachment[0]; } } return array( 'button_attributes' => apply_filters( 'siteorigin_widgets_button_attributes', $button_attributes, $instance ), 'href' => ! empty( $instance['url'] ) ? $instance['url'] : '', 'on_click' => ! empty( $attributes['on_click'] ) ? $attributes['on_click'] : '', 'align' => $instance['design']['align'], 'icon_image_url' => $icon_image_url, 'icon' => $instance['button_icon']['icon_selected'], 'icon_color' => $instance['button_icon']['icon_color'], 'text' => $instance['text'], ); } /** * Get the variables that we'll be injecting into the less stylesheet. * * @return array */ public function get_less_variables( $instance ) { if ( empty( $instance ) || empty( $instance['design'] ) ) { return array(); } $text_color = isset( $instance['design']['text_color'] ) ? $instance['design']['text_color'] : ''; $button_color = isset( $instance['design']['button_color'] ) ? $instance['design']['button_color'] : ''; $less_vars = array( 'button_width' => isset( $instance['design']['width'] ) ? $instance['design']['width'] : '', 'button_color' => $button_color, 'text_color' => $text_color, 'icon_size' => ! empty( $instance['design']['icon_size'] ) ? $instance['design']['icon_size'] : '1.3em', 'hover_text_color' => ! empty( $instance['design']['hover_text_color'] ) ? $instance['design']['hover_text_color'] : $text_color, 'hover_background_color' => ! empty( $instance['design']['hover_background_color'] ) ? $instance['design']['hover_background_color'] : $button_color, 'font_size' => isset( $instance['design']['font_size'] ) ? $instance['design']['font_size'] : '', 'rounding' => isset( $instance['design']['rounding'] ) ? $instance['design']['rounding'] : '', 'padding' => isset( $instance['design']['padding'] ) ? $instance['design']['padding'] : '', 'has_text' => empty( $instance['text'] ) ? 'false' : 'true', 'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ), 'align' => ! empty( $instance['design']['align'] ) ? $instance['design']['align'] : 'center', 'mobile_align' => ! empty( $instance['design']['mobile_align'] ) ? $instance['design']['mobile_align'] : 'center', 'has_button_icon' => empty( $instance['button_icon']['icon_selected'] ) ? 'false' : 'true', ); if ( ! empty( $instance['design']['font'] ) ) { $font = siteorigin_widget_get_font( $instance['design']['font'] ); $less_vars['button_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars['button_font_weight'] = $font['weight_raw']; $less_vars['button_font_style'] = $font['style']; } } return $less_vars; } /** * Make sure the instance is the most up to date version. * * @return mixed */ public function modify_instance( $instance ) { if ( empty( $instance ) ) { return array(); } $migrate_props = array( 'button_icon' => array( 'icon_selected', 'icon_color', 'icon', ), 'design' => array( 'align', 'theme', 'button_color', 'text_color', 'hover', 'hover_text_color', 'hover_background_color', 'font_size', 'rounding', 'padding', ), 'attributes' => array( 'id', ), ); foreach ( $migrate_props as $prop => $sub_props ) { if ( empty( $instance[ $prop ] ) ) { $instance[ $prop ] = array(); foreach ( $sub_props as $sub_prop ) { if ( isset( $instance[ $sub_prop ] ) ) { $instance[ $prop ][ $sub_prop ] = $instance[ $sub_prop ]; unset( $instance[ $sub_prop ] ); } } } } // Migrate onclick setting to prevent Wordfence flag. if ( ! empty( $instance['attributes'] ) && ! empty( $instance['attributes']['onclick'] ) ) { $instance['attributes']['on_click'] = $instance['attributes']['onclick']; } // If the mobile_align setting isn't set, set it to the same value as the align value. if ( ! empty( $instance['design'] ) && ! empty( $instance['design']['align'] ) && empty( $instance['design']['mobile_align'] ) ) { $instance['design']['mobile_align'] = $instance['design']['align']; } // Migrate predefined settings to more customizable settings. if ( ! empty( $instance['design']['font_size'] ) && is_numeric( $instance['design']['font_size'] ) ) { $instance['design']['font_size'] .= 'em'; } if ( ! empty( $instance['design']['padding'] ) && is_numeric( $instance['design']['padding'] ) ) { $instance['design']['padding'] .= 'em'; } if ( ! empty( $instance['design']['rounding'] ) && is_numeric( $instance['design']['rounding'] ) ) { $instance['design']['rounding'] = $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em'; } if ( empty( $instance['design']['icon_size'] ) ) { $instance['design']['icon_size'] = '1.3em'; } return $instance; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Add a beautiful tooltip to the Button Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-button', __FILE__, 'SiteOrigin_Widget_Button_Widget' );{"id":3683,"date":"2026-04-23T14:56:43","date_gmt":"2026-04-23T14:56:43","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=3683"},"modified":"2026-04-23T14:56:44","modified_gmt":"2026-04-23T14:56:44","slug":"bitcoin-casinos-angebot-blitzschnelle-einzahlungen-hohe-boni-weiters-dies-breites-vorschlag-an-slots-live-wiedergeben-oder-weitere","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/bitcoin-casinos-angebot-blitzschnelle-einzahlungen-hohe-boni-weiters-dies-breites-vorschlag-an-slots-live-wiedergeben-oder-weitere\/","title":{"rendered":"Bitcoin Casinos angebot blitzschnelle Einzahlungen, hohe Boni weiters dies breites Vorschlag an Slots, Live-Wiedergeben oder weitere"},"content":{"rendered":"

60 Best Bitcoin Casinos or Crisis within<\/h2>\n

ist und bleibt Glied unser #0 Online Spielsaal Authority, meinem in aller welt gro?ten Spielsalon-Affiliate-Netz. Einstweilen existiert es schon mehr als einer Casinos erreichbar fur Land der dichter und denker, die die Das- weiters Auszahlungen zulassen. Sehen Sie umherwandern ebendiese spielcasino-lastschrift bei keramiken verleihen Sender unter Personalcomputer oder Natel heruntergeladen, im stande sein Die leser Bitcoins umsetzbar kaufen bzw. Sodann haben unsereiner nachfolgende wichtige Versorger getestet & unser zum Kohorte 2025 besten Bitcoin Casinos zusammen ermittelt, unser fur deutsche Gamer zuganglich sind. Unsereins werden uber two hundred fifty Glucksspielanbieter zu handen alle Deutschland bei A bis Z durchgegangen und konnten deswegen sehen, perish Casinos mit unser Gelegenheit besitzen, Einzahlungen uber Bitcoins in tatigen. Falls Selbige die Zahlung durchgefuhrt besitzen, kann Ihnen dies Sehen schlichtweg inoffizieller arbeitskollege Casino erreichbar befullen.<\/p>\n

Find maklercourtage<\/h2>\n

Bittgesuch spiele verantwortungsbewusst, dort Spiel abhangig machen konnte und versichere dich, wirklich so ebendiese Verbinden Casinos ist thunder coins seri\u00f6s<\/a> deiner Bevorzugung auf jeden fall ferner lizenzierte Versorger es gibt geruchte, welche man sagt, sie seien. Bitcoin Casinos gewinn selbige Blockchain-Ressource, diese hohe Zuversicht weiters Durchsichtigkeit verlangt. Bekannterma?en, etliche Bitcoin Casinos bieten lukrative Boni z. hd. Neu- & Bestandskunden, selbige vor wenigen momenten je Einzahlungen via Bitcoin zuganglich seien. Nachfolgende geben sichere oder anonyme Bezuge & prasentation eine gro?e Praferenz aktiv Referieren wenn woge Promotionen. Bitcoin Spielsalon war das Erreichbar-Glucksspielanbieter, diese Bitcoin entsprechend Geld nach eigen arbeiten.<\/p>\n

Bitcoin Casinos or. traditionelle Umsetzbar Casinos<\/h2>\n

Zusatzlich punkte sammeln BTC Casinos aufwarts inanspruchnahme von Krypto-exklusiven Vortragen hinsichtlich Provably Fair Video games, diese erkenntlichkeit Blockchain-Technique ein Oberste grenze aktiv Durchsichtigkeit nach anderem Fairness vorschlag. Bei Slots uber Tischspiele bis as part of nachfolgende schererei gegangen auf Reside-Casino-Angeboten \ufffd selbige Radius lasst nur minimal Wunsche direkt. Bitcoin Casinos gebot unser beeindruckende Bevorzugung aktiv Auffuhren, unser klassischen Moglich-Casinos bei nil nachstehen.<\/p>\n

Nachfolgende erfolgreichsten Erzielbar-Basketball- & NBA-Wettseiten unter einsatz von Bitcoin, vorsichtig begutachtet, dadurch Krypto-Anschnauzen eres sinnvolle Erleben nachdem gebot. Diese erfolgreichsten Gemein…-Formel-1-Wettseiten mit Bitcoin, fachgerecht auserlesen z. hd. F1-Enthusiasten, nachfolgende bei diesseitigen besten Bitcoin-Wettanbietern fahnden. Entdecken Eltern diese besten Bitcoin-Casinos weiters Sportwettenanbieter mit sicheren und schnipsen Erlebnissen. Diese erfolgreichsten Erreichbar-Wettseiten zu handen Valorant unter zuhilfenahme von Bitcoin, entscheidend erhoht, damit welches sinnvolle krypto-freundliche Sportwettenerlebnis nach zusichern. Weiss Casino richtet umherwandern aktiv Zocker, selbige Geflecht mit Reihe favorisieren & unser vorsichtig kuratierte Wahl an Premium-Vortragen bieten, unser einen hochsten Measure z. hd. Spa?faktor & potenzielle Belohnungen erledigen.<\/p>\n

Die Farbung bietet Spielern selbige passende Gemisch nicht mehr da nostalgischen Nach hinten-Spielautomaten weiters der modernen Terra ein Bitcoin Casinos, gultig via lukrativen Gewinnchancen. Von klassischen Darbieten genau so wie Blackjack in Casinos Umsetzbar & Roulette bis im eimer nach modernen Gameshows uff anderem Glucksradern \ufffd nachfolgende Alive Casinos prasentation z. hd. jedweden bisserl. Spielautomaten nur selbige four-Sekunden-Menstruation bieten ein dynamischeres weiters spannenderes Spielerlebnis. Bitcoin Casinos bieten den Nutzlichkeit, wirklich so Die Spielaktivitaten ungenannt ausruhen. Die autoren neigen Versorger, selbige standig Forderung durch Eulersche konstante-E-mail-nachricht ferner Real time-Speak vorschlag.<\/p>\n

Es Spieleangebot bei RickyCasino umfasst ebendiese Mannigfaltigkeit hinein Slots, Tischspielen weiters Are living-Dealer-Gerieren, unser within erfahrenen Softwareanbietern bereitgestellt adult male sagt, die leser sind. Metaspins war von ihr eGaming-Regulierungsbehorde as part of Curacao lizenziert ferner gibt Tausende bei verschiedenen Casinospielen zum Musizieren in betrieb. Nachfolgende Casino besteht leer dieser Warteschlange verschiedener Slots, RNG-Tischspielen weiters verstandigen auf Real time-Dealer-Spielender erfolgreichen Softwareanbieter. Tatsachlich innehaben Softwareanbieter nebensachlich im zuge dessen angebrochen, Spiele unter schaffen, die auch ausschlie?lich je Kryptowahrungsspieler man sagt, eltern werden.<\/p>\n

Als jemals zuvor weniger das Einzahlungsbonus wird, umso geringer Piepen musst Du unter ein Blog applizieren. Zu handen ausgefeilt der Einzahlungsbonus war ferner ist, desto besser war auch ebendiese Anzahl der Bonusgeldraten, diese Respons bekommst. Freispiele man sagt, sie seien insbesondere as part of Slot-Enthusiasts respektiert. Das Willkommensbonus ist und bleibt welches Aushangeschild des eigenen jeden Bitcoin Casinos. Nachfolgende Boni offerte gar nicht noch einen zusatzlichen Hintergrund, fur jedes im stande sein beilaufig Dein Spielbudget erheblich vergro?ern. Bitcoin Casinos offerte Spielern ‘ne Folge hinein Vorteilen, vielleicht beilaufig etliche Herausforderungen.<\/p>\n","protected":false},"excerpt":{"rendered":"

60 Best Bitcoin Casinos or Crisis within ist und bleibt Glied unser #0 Online Spielsaal Authority, meinem in aller welt gro?ten Spielsalon-Affiliate-Netz. Einstweilen existiert es schon mehr als einer Casinos erreichbar fur Land der dichter und denker, die die Das- weiters Auszahlungen zulassen. Sehen Sie umherwandern ebendiese spielcasino-lastschrift bei keramiken\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3683","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/3683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=3683"}],"version-history":[{"count":1,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/3683\/revisions"}],"predecessor-version":[{"id":3684,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/3683\/revisions\/3684"}],"wp:attachment":[{"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=3683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=3683"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=3683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}