/* 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":138877,"date":"2026-06-02T17:45:52","date_gmt":"2026-06-02T17:45:52","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=138877"},"modified":"2026-06-02T17:45:52","modified_gmt":"2026-06-02T17:45:52","slug":"meilleurs-casinos-en-ligne-au-quebec-top-15-de-2026-2","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/meilleurs-casinos-en-ligne-au-quebec-top-15-de-2026-2\/","title":{"rendered":"Meilleurs casinos en ligne au Qu\u00e9bec Top 15 de 2026"},"content":{"rendered":"

Slots Gallery se distingue \u00e9galement par ses paiements ultra-rapides qui sont effectu\u00e9s en moins de 24 heures, comme sur LuckyDays. La gamme de paiements comprend \u00e9galement 10 cryptomonnaies diff\u00e9rentes comme Bitcoin, Litecoin et Ethereum. Comme sur LuckyWins, le choix d\u2019options de paiement sur Lucky Ones est tr\u00e8s large et vari\u00e9.<\/p>\n

Avis d\u00e9taill\u00e9s : top 10 casino en ligne Canada 2026<\/h2>\n

Certaines plateformes modernes offrent des options d’inscription rapide via Google ou Facebook. La qualit\u00e9 des d\u00e9veloppeurs de jeux est un indicateur cl\u00e9 de la fiabilit\u00e9 d’un meilleur casino en ligne. Les cryptomonnaies offrent des paiements rapides et anonymes dans les meilleur casinos en ligne, sans n\u00e9cessiter de donn\u00e9es bancaires. Utilis\u00e9s sur le meilleur casino en ligne, ces services offrent des protocoles de cryptage avanc\u00e9s, garantissant des transactions s\u00e9curis\u00e9es et une int\u00e9gration fluide aux plateformes modernes. Sur le meilleur casino en ligne, les joueurs acc\u00e8dent \u00e0 des options vari\u00e9es, allant des paris simples aux syst\u00e8mes plus avanc\u00e9s comme les handicaps asiatiques ou les totaux combin\u00e9s. Les paris sportifs dans les casinos en ligne offrent une exp\u00e9rience immersive et strat\u00e9gique, couvrant aussi bien les sports traditionnels que les comp\u00e9titions d\u2019e-sport.<\/p>\n

Jeux de table<\/h3>\n

Un sportsbook int\u00e9gr\u00e9 permet \u00e9galement de parier sur le sport sans changer de compte. Avec plus de titres disponibles, Spinbara https:\/\/sirkelfoodsstratford.com\/fr<\/a> figure parmi les casino en ligne canadiens les mieux garnis du march\u00e9. Que vous soyez bas\u00e9 au Qu\u00e9bec ou ailleurs au pays, vous trouverez ici des options fiables acceptant l\u2019argent canadien.<\/p>\n

Weltbet : Les meilleurs bonus et jeux de casino en ligne Canada<\/h2>\n

\"Meilleur<\/p>\n

Le bonus de bienvenue rembourse le premier pari jusqu\u2019\u00e0 100 \u20ac, converti en paris gratuits, avec des conditions limpides. La d\u00e9clinaison fran\u00e7aise de Betsson se concentre exclusivement sur les paris sportifs, conform\u00e9ment \u00e0 la r\u00e9glementation de l\u2019ANJ. \u00c0 l\u2019international, la marque va encore plus loin avec un large \u00e9ventail d\u2019options r\u00e9gionales. Le bonus de bienvenue se d\u00e9cline en deux volets, permettant de progresser \u00e9tape par \u00e9tape, sans se perdre dans des conditions complexes. Chaque page respire la simplicit\u00e9 et met l\u2019accent sur la lisibilit\u00e9 des cotes, ce qui s\u00e9duit autant les parieurs confirm\u00e9s que les curieux.<\/p>\n

Autres casinos en ligne recommand\u00e9s au Canada<\/h3>\n

\"Meilleur<\/p>\n

Plongez dans une exp\u00e9rience de jeu inoubliable, sp\u00e9cialement pens\u00e9e pour les joueurs canadiens. Bienvenue chez Spin Palace, le site de casino en ligne o\u00f9 des tops machines \u00e0 sous et jeux captivants vous attendent. Toute tentative d\u2019inscription par un mineur entra\u00eenera la fermeture imm\u00e9diate du compte. En plus de jouer \u00e0 nos jeux sur le navigateur de votre t\u00e9l\u00e9phone portable, vous pouvez \u00e9galement t\u00e9l\u00e9charger nos applications iOS et Android depuis les boutiques habituelles.<\/p>\n

Slots Gallery \u2013 Meilleurs bonus de tours gratuits<\/h3>\n

De nombreux casinos en ligne canadiens poss\u00e8dent encore aujourd\u2019hui cette licence. Le territoire de Kahnawake joue un r\u00f4le majeur dans l\u2019univers des casinos en ligne canadiens. Les joueurs canadiens peuvent acc\u00e9der \u00e0 des plateformes locales r\u00e9glement\u00e9es ainsi qu\u2019\u00e0 certains op\u00e9rateurs internationaux qui acceptent les joueurs qui r\u00e9sident au Canada.<\/p>\n

Certains proposent \u00e9galement des interfaces plus modernes, une meilleure optimisation mobile d\u00e8s le lancement, ou des int\u00e9grations avec des m\u00e9thodes de paiement \u00e9mergentes comme les cryptomonnaies. Un bonus attractif en surface peut se r\u00e9v\u00e9ler pi\u00e9geux si les conditions de mise sont excessives. Un site sans licence valide est imm\u00e9diatement \u00e9cart\u00e9, peu importe la qualit\u00e9 apparente de son catalogue de jeux. Ce sont quasiment les m\u00eames que nos recommandations pour les casinos en ligne en France, \u00e0 quelques d\u00e9tails pr\u00e8s.<\/p>\n

\"Meilleur<\/p>\n

Oui, la plupart des casinos modernes offrent des applications ou des sites mobiles optimis\u00e9s, permettant une exp\u00e9rience fluide sur Android et iOS. Son bonus de bienvenue allant jusqu\u2019\u00e0 \u20ac et 150 Free Spins en fait une option particuli\u00e8rement attractive pour les nouveaux joueurs. En vous fiant \u00e0 Casino-en-ligne-france.org, vous avez la garantie de choisir parmi de casino en ligne qui priorisent votre s\u00e9curit\u00e9, votre confort et une exp\u00e9rience de jeu responsable. Dans un march\u00e9 en constante \u00e9volution, nous analysons rigoureusement chaque site pour ne recommander que des options respectant des standards \u00e9lev\u00e9s, o\u00f9 la s\u00e9curit\u00e9 et le jeu responsable sont prioritaires. Une fois le d\u00e9p\u00f4t effectu\u00e9, le bonus de bienvenue s\u2019active automatiquement ou via l\u2019onglet promotions. Ces derniers simplifient \u00e9galement le processus, ne n\u00e9cessitant que l\u2019envoi des fonds \u00e0 une adresse crypto fournie.<\/p>\n

Vous pourrez ainsi g\u00e9n\u00e9ralement trouver sur les plateformes diff\u00e9rentes sortes de machines \u00e0 sous (classiques, vid\u00e9o 3D, progressives, etc.). Elles se diff\u00e9rencient en mati\u00e8re de fonctionnalit\u00e9s, de th\u00e8mes, d\u2019images, de jackpots et m\u00eame de qualit\u00e9 sonore. Les machines \u00e0 sous sont la cat\u00e9gorie de jeux de casino au Qu\u00e9bec la plus repr\u00e9sent\u00e9e en ligne.<\/p>\n

Le casino en direct offre l\u2019exp\u00e9rience la plus immersive sur le march\u00e9 canadien. Ces jeux offrent souvent des th\u00e8mes vari\u00e9s et des fonctionnalit\u00e9s bonus lucratives. Nous \u00e9valuons toujours la qualit\u00e9 des titres propos\u00e9s, car un catalogue massif ne suffit pas sans des fournisseurs reconnus. Un casino en ligne fiable au Canada se distingue d\u2019abord par la richesse de sa ludoth\u00e8que. Ces options de paiement imposent des limites flexibles, allant de 20 C$ \u00e0 C$ par op\u00e9ration. Les cartes de cr\u00e9dit ou de d\u00e9bit Visa et Mastercard demeurent des options universelles.<\/p>\n","protected":false},"excerpt":{"rendered":"

Slots Gallery se distingue \u00e9galement par ses paiements ultra-rapides qui sont effectu\u00e9s en moins de 24 heures, comme sur LuckyDays. La gamme de paiements comprend \u00e9galement 10 cryptomonnaies diff\u00e9rentes comme Bitcoin, Litecoin et Ethereum. Comme sur LuckyWins, le choix d\u2019options de paiement sur Lucky Ones est tr\u00e8s large et vari\u00e9.\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":[109],"tags":[],"class_list":["post-138877","post","type-post","status-publish","format-standard","hentry","category-109"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138877","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=138877"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138877\/revisions"}],"predecessor-version":[{"id":138878,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/138877\/revisions\/138878"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=138877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=138877"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=138877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}