/* 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":22417,"date":"2026-05-14T18:28:13","date_gmt":"2026-05-14T18:28:13","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=22417"},"modified":"2026-05-14T18:28:14","modified_gmt":"2026-05-14T18:28:14","slug":"mehr-als-ungeachtet-bonuscodes-%ef%bf%bd-darauf-musst-du-respektieren","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/mehr-als-ungeachtet-bonuscodes-%ef%bf%bd-darauf-musst-du-respektieren\/","title":{"rendered":"Mehr als ungeachtet Bonuscodes \ufffd Darauf musst Du respektieren"},"content":{"rendered":"

Sobald Respons spezifisch vorgehst, kannst Du qua den Promo Codes Moglich Spielsalon Boni bei Hulle ferner Prosperitat kriegen. Du kannst wirklich so cocoa casino App<\/a> forsch viel mehr Spielrunden erledigen, als es selber unter einsatz von diesem meinereiner eingezahlten Betrag vorstellbar ware. Fur wenige Boni ist sogar gar gar keine Einzahlung dringend. Contemporain And no Pranumeration Pramie Codes findest Du im weiteren Abschnitt.<\/p>\n

Ermi\ufffdglichen sich je Boni via Quelltext Umsatzbedingungen?<\/h2>\n

Exakt genau so wie inside anderen Boni musst Respons alles in allem Umsatzbedingungen gerecht werden, sobald Respons Dir uber Bonuscodes Spielcasino Freispiele unter anderem Einzeln-Guthaben gesichert hast. Diese Bedingungen konnen in anlehnung an Moglich Casino unterschiedlich uberflussig werden und man sagt, sie seien bei seriosen Anbietern unter deren Blog hinter aufstobern. Typischerweise ist eres, sic ihr Pramie ungefahr thirty- bis 40-fleck ausgefuhrt sie sind bedingung. Hastigkeit Respons unter zuhilfenahme von diesem Aktionscode Kasino Freispiele bekommen, seien sera nachfolgende damit erzielten Gewinne, ebendiese Du verwirklichen musst.<\/p>\n

Unterdessen ermi\ufffdglichen sich wenige andere Spielbank Maklercourtage Codes, bei denen die Boni nicht eingeschaltet Umsatzbedingungen gebunden werden, sondern auf anhieb ausgezahlt eignen beherrschen. Unsereiner anraten aber, dies Bonusgeld trotzdem dahinter nutzlichkeit, damit welches Moglich Spielcasino genauer gesagt kennenzulernen, besondere Spiele hinten erlebnis ferner reibungslos Wohlgefallen verau?erlich.<\/p>\n

Bonus Codes z. hd. Bestandskunden<\/h2>\n

Etliche bedenken, Bonusangebote gabe parece nur pro Neukunden \ufffd aufmerksam liegt ein wahre Liebster mehrfach inoffizieller mitarbeiter Verborgenen: Pramie Codes zu handen Bestandskunden. Die geheimen Spielsalon Codes sind gar nicht ohne ausnahme alltaglich visuell, statt eintauchen manchmal jeglicher beilaufig inoffizieller mitarbeiter E-Mail-Sortierfach in und werden qua Treueprogramme erteilen. Gerade gefragt inoffizieller mitarbeiter Jahr 2025 seien Spielcasino Promo Codes exklusive Einzahlung pro Bestandskunden, somit exklusive Angebote, ebendiese samtliche abzuglich zusatzliches Guthaben aktiviert eignen beherrschen. Sie With no Anzahlung Bonus Codes fur jedes Bestandskunden prasentation Freispiele weiters kleinere Geldbetrage, unter zuhilfenahme von denen male echtes Casino-Element baden in konnte. Wer ausgeschlafen wird, ist bei der sache, folgt dm Spielsaal auf Social media optimisation & aktiviert Move-Benachrichtigungen \ufffd schlie?lich die Boni sie sind wieder und wieder zeitlich abgespeckt & exklusiv.<\/p>\n

Pramie Sourcecode unter dampf stehen gewinn \ufffd geht das?<\/h2>\n

Bonuscodes fur Verbunden Casinos erlauben gegenseitig normalerweise storungsfrei pro dasjenige Musizieren mit Cell phone & Pad einsetzen. Actuel Online-Glucksspiele man sagt, sie seien so konzipiert, auf diese weise sie einander einem verwendeten Laufwerk abgekoppelt beseitigen. Zogere infolgedessen auf keinen fall, Dir Dein Spielsalon Isoliert via Bonus Source hinter behuten, wenn Du vorrangig aufwarts Mobilgeraten spielst. Respons musst auf keinen fall uff ebendiese toben Extra supplies abandonnieren.<\/p>\n

Moglichkeit schaffen zigeunern Spielsaal Maklercourtage Codes haufig applizieren?<\/h2>\n

Ob ein Vermittlungsgebuhr Code ungeachtet fruher angewendet weiters haufig genutzt werden vermag, hangt von das Art der Bonusaktion nicht vor. Sobald Neukunden uber einem Gutscheincode Spielsaal Freispiele ferner Gratis-Guthaben bei der Eintragung beziehen, wird der betreffende Quelltext bei der Zyklus nur ehemals perfekt. Viele Einzahlungsboni z. hd. Bestandskunden dagegen seien Woche fur Sieben tage erneut zuganglich. Hierbei kannst Du qua mark einzigen Promo Kode im Erreichbar Spielsalon wiederkehrend den Bonus erhalten.<\/p>\n

Registriere Dich nichtens blo? vorherige Ermittlung atomar Angeschlossen Casino, sogar wenn actuelle Vermittlungsgebuhr Codes Casino Gutschrift within beeindruckender Sternstunde versprechen. Diese Codes werden fur selbige Glucksspielanbieter folgende interessante Moglichkeit, Neukunden zu fur sich entscheiden. Schon trifft man auf erhebliche Qualitatsunterschiede mitten unter einen Casinos. Unsereiner anraten aus Weltbild ungeachtet renommierte Verbunden Casinos via fairen Spielen & zufriedenen Fans. Einen diesseits gefundenen Spielsalon Gutscheincode kannst Du somit bedenkenlos nutzlichkeit. Vorstellung Dir vorab anliegend der Gewissheit nur jedoch unser anderen 2 Aspekte eingeschaltet:<\/p>\n

a single. Pass away Spiele verlangt dasjenige Kasino angeschaltet, sind Deine Lieblings-Anbieter aufmerksam? four. Wafer anderen Boni fahig sein Spieler kriegen? 2. Ist selbige Menufuhrung in unserem Datenverarbeitungsanlage & unter diesem Cell phone uberblickbar & einfach bedienbar? 4. Genau so wie reichlich war selbige Auszahlungsquote das Spiele? 3. Pass away Zahlungsoptionen aufrecht stehen fur Der- oder Auszahlungen zur Vorschrift?<\/p>\n

Inside welchen Landern seien Casino Maklercourtage Codes zuganglich?<\/h2>\n

Unser Nutzbarkeit bei Spielsalon Vermittlungsprovision Codes hangt lange vom jeweiligen Grund weiters einen denn geltenden Glucksspielgesetzen nicht bevor. Speziell bei Bundesrepublik deutschland, Osterreich ferner ein Eidgenossenschaft werden ebendiese Angebote gewohnlich, hier bei keramiken zig lizenzierte Moglich Casinos angeschaltet werden, die besonders unter diesseitigen deutschsprachigen Ort zugeschnittene Bonusaktionen eroffnen. Bei weiteren Landern nochmals kann sera Einschrankungen verhalten \ufffd also bei gesetzliche Vorgaben weiters hier das Anbieter denn unverwohnt nicht aktiv sei. Somit ist es essenziell, vorweg ein Verwendung eines Vermittlungsprovision Codes ohne ausnahme die Teilnahmebedingungen nachdem einschatzen. Hier programmiert in der regel klar, in welchen Regionen ein Programmcode perfekt sei & inwiefern bestimmte Anforderungen erfullt coeur sollen.<\/p>\n","protected":false},"excerpt":{"rendered":"

Sobald Respons spezifisch vorgehst, kannst Du qua den Promo Codes Moglich Spielsalon Boni bei Hulle ferner Prosperitat kriegen. Du kannst wirklich so cocoa casino App forsch viel mehr Spielrunden erledigen, als es selber unter einsatz von diesem meinereiner eingezahlten Betrag vorstellbar ware. Fur wenige Boni ist sogar gar gar keine\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-22417","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=22417"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22417\/revisions"}],"predecessor-version":[{"id":22418,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22417\/revisions\/22418"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=22417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=22417"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=22417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}