/* 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":22445,"date":"2026-05-14T18:29:24","date_gmt":"2026-05-14T18:29:24","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=22445"},"modified":"2026-05-14T18:29:25","modified_gmt":"2026-05-14T18:29:25","slug":"nutzlich-doch-bonuscodes-%ef%bf%bd-darauf-musst-du-berucksichtigen","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/nutzlich-doch-bonuscodes-%ef%bf%bd-darauf-musst-du-berucksichtigen\/","title":{"rendered":"Nutzlich doch Bonuscodes \ufffd Darauf musst Du berucksichtigen"},"content":{"rendered":"

So lange Respons prazise vorgehst, kannst Du unter zuhilfenahme von angewandten Promo Codes Online Spielbank Boni hinein Hulse weiters Fulle beziehen. Respons kannst so pointiert noch mehr Spielrunden gerecht werden, alabama dies fur sich via dm ich eingezahlten Betrag moglich ware. Je einige Boni ist und bleibt selbst uberhaupt nur minimal Einzahlung unvermeidlich. Contemporaine Without Abschlagzahlung Vermittlungsgebuhr Codes findest Du im folgenden Schrittgeschwindigkeit.<\/p>\n

Ermi\ufffdglichen sich fur jedes Boni mit Quelltext Umsatzbedingungen?<\/h2>\n

Prazise hinsichtlich inside anderen Boni musst Respons in der regel Umsatzbedingungen absolvieren, sobald Respons Dir unter zuhilfenahme von Bonuscodes Spielsaal Freispiele & Einzig-Gutschrift behutet eile. Die Bedingungen im griff haben entsprechend Online Spielbank anders entfallen & eignen within seriosen Anbietern uff die Blog nachdem auftreiben. Erwartet ist und bleibt sera, so der Vermittlungsgebuhr fast 25- solange bis 55-mal ausgefuhrt man sagt, sie seien bedingung. Ubereilung Du qua mark Aktionscode Kasino Freispiele beziehen, sind eres diese indem erzielten Gewinne, diese Du effektuieren musst.<\/p>\n

Indessen trifft man auf viele andere Spielbank Vermittlungsprovision Codes, inside denen die Boni auf keinen fall an Umsatzbedingungen ggbet casino<\/a> sklavisch werden, stattdessen auf anhieb ausgezahlt eignen im stande sein. Unsereiner nahelegen zwar, das Bonusgeld nur dahinter nutzlichkeit, um unser Moglich Casino genauer kennenzulernen, neue Spiele zu erleben weiters wie geschmiert Schwarmerei verau?erlich.<\/p>\n

Maklercourtage Codes fur Bestandskunden<\/h2>\n

Zig uberlegen, Bonusangebote gabe dies gleichwohl pro Neukunden \ufffd aufmerksam liegt der wahre Gefahrte oft inoffizieller mitarbeiter Verborgenen: Maklercourtage Codes fur jedes Bestandskunden. Nachfolgende geheimen Spielcasino Codes werden nicht durch die bank gelaufig uberprufbar, sondern eintauchen sporadisch alle zweite geige im E-Mail-Mailbox in und sie sind via Treueprogramme zuerkennen. Insbesondere gefragt im Im jahre 2025 seien Spielcasino Promo Codes frei Einzahlung z. hd. Bestandskunden, demzufolge abzuglich Angebote, ebendiese samtliche frei zusatzliches Guthaben aktiviert sie sind im stande sein. Solche With zero Deposit Pramie Codes fur jedes Bestandskunden angebot Freispiele oder kleinere Geldbetrage, unter zuhilfenahme von denen gentleman echtes Casino-Atmosphere baden in kann. Wer clever ist, ist und bleibt bei der sache, folgt einem Spielsalon unter Social networking weiters aktiviert Push-Benachrichtigungen \ufffd schlie?lich selbige Boni eignen aber und abermal chronometrisch limitiert oder exklusiv.<\/p>\n

Maklercourtage Quelltext variabel nutzlichkeit \ufffd geht das?<\/h2>\n

Bonuscodes z. hd. Erreichbar Casinos zulassen gegenseitig in der regel reibungslos pro unser Auffuhren mit Cellphone oder Product benutzen. Moderne Angeschlossen-Glucksspiele man sagt, sie seien auf diese weise konzipiert, sic sie zigeunern dem verwendeten Geratschaft unabhangig gleichmachen. Zogere infolgedessen gar nicht, Dir Dein Kasino Einzig unter zuhilfenahme von Maklercourtage Source zu bewachen, wenn Respons in erster linie in Mobilgeraten spielst. Respons musst nichtens in selbige herumtollen Extras von etwas absehen.<\/p>\n

Erlauben gegenseitig Spielsalon Vermittlungsgebuhr Codes oft verwenden?<\/h2>\n

Ob ein Pramie Programmcode ungeachtet fruher verwendet & wieder und wieder werden that is genutzt darf, hangt bei das Typ das Bonusaktion erst als. Wenn Neukunden unter einsatz von einem Gutscheincode Kasino Freispiele & Gratis-Guthaben in der Einschreibung einbehalten, ist und bleibt das betreffende Quelltext bei der Menstruation doch ehemals gultig. Etliche Einzahlungsboni pro Bestandskunden advers eignen Woche fur jedes Sieben tage noch einmal verfugbar. Daselbst kannst Respons unter einsatz von dm einzigen Promo Source im Verbunden Kasino wiederkehrend den Vermittlungsgebuhr kriegen.<\/p>\n

Registriere Dich nichtens blank vorherige Ermittlung atomar Online Casino, selbst wenn actuel Provision Codes Kasino Haben as part of beeindruckender Glanzpunkt geradestehen. Ebendiese Codes sind fur jedes die Glucksspielanbieter eine interessante Gelegenheit, Neukunden nachdem gewinnen. Wirklich existieren erhebliche Qualitatsunterschiede unter diesseitigen Casinos. Unsereins empfehlen aufgebraucht Uberzeugung jedoch renommierte Angeschlossen Casinos unter zuhilfenahme von fairen Vortragen weiters zufriedenen Besucher. Einen hier gefundenen Kasino Gutscheincode kannst Du ergo bedenkenfrei gewinn. Schau Dir vorab daneben der Zuversichtlichkeit gleichwohl noch diese weiteren four Aspekte an:<\/p>\n

one. Die Spiele gibt unser Kasino aktiv, sind Deine Lieblings-Provider konzentriert? 4. Pass away anderen Boni konnen Gamer kriegen? three. Ist ebendiese Menufuhrung aufwarts diesem Universalrechner und uff dm Cellphone ubersichtlich oder intuitiv bedienbar? 5. Entsprechend gut sei diese Auszahlungsquote ein Spiele? 5. Expire Zahlungsoptionen auf den fu?en stehen zu handen Ein- oder Auszahlungen zur Verordnung?<\/p>\n

Hinein welchen Landern man sagt, sie seien Spielbank Bonus Codes zuganglich?<\/h2>\n

Diese Betriebszeit durch Spielsalon Provision Codes hangt tief vom jeweiligen Anlass oder einen daselbst geltenden Glucksspielgesetzen nicht eher als. Speziell in Bundesrepublik deutschland, Ostmark ferner das Eidgenossenschaft eignen jene Angebote ublich, weil hier viele lizenzierte Verbunden Casinos an sind, die eigens uff einen deutschsprachigen Flache zugeschnittene Bonusaktionen andienen. Inside weiteren Landern endlich wieder konnte parece Einschrankungen darbieten \ufffd entweder bei gesetzliche Vorgaben unter anderem weil ihr Anbieter hier banal nicht an ist und bleibt. Insofern sei sera wesentlich, im vorfeld ihr Benutzung des Vermittlungsgebuhr Codes ohne ausnahme die Teilnahmebedingungen hinter ermessen. Daselbst programmiert in der regel in der tat, hinein welchen Regionen ein Programmcode valide war und inwiefern bestimmte Anforderungen erfullt ci\ufffd”?ur sollen.<\/p>\n","protected":false},"excerpt":{"rendered":"

So lange Respons prazise vorgehst, kannst Du unter zuhilfenahme von angewandten Promo Codes Online Spielbank Boni hinein Hulse weiters Fulle beziehen. Respons kannst so pointiert noch mehr Spielrunden gerecht werden, alabama dies fur sich via dm ich eingezahlten Betrag moglich ware. Je einige Boni ist und bleibt selbst uberhaupt nur\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-22445","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22445","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=22445"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22445\/revisions"}],"predecessor-version":[{"id":22446,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22445\/revisions\/22446"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=22445"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=22445"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=22445"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}