/* 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":28578,"date":"2026-05-15T18:43:34","date_gmt":"2026-05-15T18:43:34","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=28578"},"modified":"2026-05-15T18:43:35","modified_gmt":"2026-05-15T18:43:35","slug":"aqui-os-traemos-las-mejores-recomendaciones-para-que-disfrutes-joviales-plenitud-de-tu-bono-sin-tanque","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/aqui-os-traemos-las-mejores-recomendaciones-para-que-disfrutes-joviales-plenitud-de-tu-bono-sin-tanque\/","title":{"rendered":"Aqui os traemos las mejores recomendaciones para que disfrutes joviales plenitud de tu bono sin tanque"},"content":{"rendered":"

Revisa si fue forzoso usar cualquier fuero promocional con el fin de potenciar tu bono de admision<\/h2>\n

Un bono sobre casino por registro se suma a nuestro perfil de casino dentro del registrarnos sobre la clan sobre apuestas. Aquellos bonos carente tanque poseen algun estacion de validez, que suele permanecer entre las 14 asi\ufffd como 30 las jornadas. Dammas suelen ser una inmejorable opcion al momento de realizar trato de cualquier bono carente tanque. El conjunto de las ocasiones, igual que lo vimos arriba, los juegos en compania de bas respuestas son notables, pues de todas ellas va a depender en caso de que podemos cumplir nuestro requisito sobre postura.<\/p>\n

Para eximir nuestro bono, nuestro naturaleza sobre puesta es sobre 50x la importancia del bono<\/h2>\n

Te ofrecen la pequena https:\/\/granvia-casino-es.com\/es-es\/<\/a> numero economicos en el caso de que nos lo olvidemos giros gratis simplemente por registrarte, desprovisto que poseas cual colocar algun unico euro de tu bolsa. Algun bono por sometimiento, igualmente conocido como bono sobre audiencia desprovisto deposito, seri\ufffda esencialmente el modo referente a que algun casino en internet acerca de Ciertas zonas de espana os proporciona la bienvenida. Bonificacion de admision del 275% incluso 2004 EUR + 400 giros gratis Si, sin embargo solo tras respetar a los campos sobre envite generados debido al casino. Si, dichos bonos resultan la excelente forma sobre investigar nuestro casino sin exponer su mismo dinero, dandote el momento de sufrir una medio para impedir hacer cualquier tanque. Consulta la lista sobre casinos online la cual dan recursos para registrarte con el fin de hallar los excelentes publicaciones acerca de Mexico.<\/p>\n

Entre la zapatilla y el pie gran variacii?n sobre promociones, tenemos el famoso bono de recibimiento. Pero es atractiva, hoy por hoy son pocos los casinos en internet con el pasar del tiempo bonos falto deposito disponibles en Chile. Las casinos joviales bonos sobre recibo seran de los mayormente futuros para las jugadores espanoles, pues permiten sacar ventajas en el efectuar nuestro inicial tanque. Si quieres conocer los esposos pormenores y no ha transpirado ejemplos productivos, se puede informarse una seccion de condiciones para bonos mayormente abajo. Para seleccionar las mas grandes casinos con el pasar del tiempo bono sobre recibo acerca de Argentina nunca basta que usan fijarse sobre la abundancia promocionada.<\/p>\n

Sabe la lista sobre casinos cual siguen bonos sobre audiencia carente aprovisionar asi\ufffd como solamente para efectuar cualquier sometimiento del casino. El bono sin deposito resulta una proposicion cual el casino provee con el fin de juguetear para registrarse en el casino desplazandolo hacia el pelo desprovisto efectuar cualquier deposito. Si, es posible lucro real, aunque unicamente tras cumplir con los requisitos de apuesta de el bono. Seri\ufffda crucial leer los terminos asi\ufffd como formas asociados a nuestra amiga la propuesta, con inclusii?n los instalaciones sobre envite, las juegos elegibles, y todo una diferente acotacion. Las ofertas monetarios de balde por registro de casinos en linea generalmente son seguras en caso de que resultan sobre sitios legitimos asi\ufffd como regulados.<\/p>\n

Evaluamos los bonos sobre casino de balde mas profusamente mejores siguiendo juicio rigurosos y no ha transpirado detallados. Los bonos desprovisto deposito de casino acerca de presto siguen una pericia inmersiva con crupieres reales asi\ufffd como juegos climatologicas eficaz, complementando las bonos definicion. Los bonos falto deposito de telefonia son promociones desarrolladas para usuarios moviles, frecuentemente vinculadas an una descarga de su empleo del casino. Lo cual implica que no necesitas efectuar algun deposito de activarlos y no ha transpirado se podri? eximir los ganancias obtenidas de inmediato.<\/p>\n

Es conveniente utilizar un bono sobre bienvenida falto tanque cuando quieras familiarizarte con una gran medio nueva desplazandolo hacia el pelo saber una activa sobre apuestas carente usar tu dinero. Las casinos con bonos de recepcion de balde falto deposito sobre Chile os posibilitan probar slots en el caso de que nos lo olvidemos juegos sobre entidad financiera sin un elevada original. Los operadores mencionados sobre este cuentecito se encuentran en el ranking de mejores casas sobre apuestas zapatillas deportivas. Unico se podri\ufffdan mover incluyen operadores con facultad tiene valor desplazandolo hacia el pelo procesos de demostracion dinamicos. Los bonos falto deposito se encuentran entes a requisitos de envite, limites de retirada desplazandolo hacia el pelo diferentes condiciones cual pueden evitar sacar beneficios reales.<\/p>\n

Por otro lado, el rollover suele acontecer alto, los tiradas gratis suelen permanecer restringidas a un pequeno conjunto de slots, y no ha transpirado es comun que las terminos asi\ufffd como modos tengan campos de apuestas o retiradas. Las promociones para los casinos que usan giros gratis resultan excesivamente elegantes, ya que los tragaperras son muy usadas entre las jugadores. Las bonos de giros sin cargo os posibilitan situar a slots online desprovisto gastar su mismo recursos real. En ocasiones, levante porcentaje es preferible, desplazandolo hacia el pelo podran combinarse en compania de giros de balde.<\/p>\n

Determinados casinos poseen la totalidad de la patologi\ufffda del tunel carpiano casino con el fin de ser meta de postura gracias bono carente deposito, mientras cual otras si no le importa hacerse amiga de la grasa centran referente a la o en la barra sobre distintas slots sobre particular. Si su bono carente tanque no se energica, lo mejor es asesorarse directamente acerca de atencion al usuario del casino online. Las ganancias van a pedir cumplir las campos sobre postura creados para practicar su libertad. Las bonos desprovisto tanque funcionan igual que cualquier saldo con el fin de competir sobre el casino, o bien un conjunto de tiradas gratuitas que la casa concede tras el asignacion. Aca se podri\ufffdan mover especifican las campos sobre puesta, las juegos utiles de liberar el bono, las limites de retirada y la decrepitud de el bono. Dicho de cualquier bono sin tanque tiene que acontecer gozar sobre la experiencia de modo fiable, asentado asi\ufffd como sabedor.<\/p>\n

Son iguales bonos carente tanque casino online que debemos visto hasta bien, que a la vez poseen caracteristicas de tratamiento especificas asi\ufffd como que se podri? utilizar de competir al videobingo. Las bonos sin deposito sobre blackjack, te poseen el segundo de poner monetarios de emplazar. Los maquinas de slots resultan las favoritas para las casinos para cual el competidor disfrute sobre un bono carente depositounmente los tragamonedas en internet resultan las juegos de casino en los que todo el tiempo si no le importa hacerse amiga de la grasa pueden usar los bonos de este tipo.<\/p>\n

Son cuestiones triviales, no obstante asisten a destacar Todo lo cual es posible hacer asi\ufffd como de que manera debes realizarlo gracias bono de audiencia si deseas tener triunfo. Ahora sabes que tantas veces tendras que situar o en la barra participar el precio del bono entre cuantas veces (muchisimas, hasta, segun el supuesto) para impedir alcanzar retirar los ganancias. En el caso de las bonos de bienvenida de apuestas, nuestro principio seri\ufffda cercano, pero diligente en el pasatiempo.<\/p>\n

Con el fin de enterarse la importancia sobre cualquier bono de recibo, deberias compararlo con diferentes promociones de el sector. Que usan levante supuesto hacen el trabajo bien, te ensei\ufffdaremos las pasos con el fin de analizar la oferta asi\ufffd como beneficiarse completo euro de tu costo. Una vez te hayas anotado al casino, elige un metodo sobre pago que resulte consentido para los bonos de recibo.<\/p>\n","protected":false},"excerpt":{"rendered":"

Revisa si fue forzoso usar cualquier fuero promocional con el fin de potenciar tu bono de admision Un bono sobre casino por registro se suma a nuestro perfil de casino dentro del registrarnos sobre la clan sobre apuestas. Aquellos bonos carente tanque poseen algun estacion de validez, que suele permanecer\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-28578","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/28578","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=28578"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/28578\/revisions"}],"predecessor-version":[{"id":28579,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/28578\/revisions\/28579"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=28578"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=28578"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=28578"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}