*/ add_theme_support( 'automatic-feed-links' ); /* * Thêm chức năng post thumbnail */ add_theme_support( 'post-thumbnails' ); /* * Thêm chức năng title-tag để tự thêm */ add_theme_support( 'title-tag' ); /* * Thêm chức năng post format */ add_theme_support( 'post-formats', array( 'video', 'image', 'audio', 'gallery', 'quote', 'link' ) ); /* * Thêm chức năng custom background */ $default_background = array( 'default-color' => '#ffffff', ); add_theme_support( 'custom-background', $default_background ); /* * Tạo menu cho theme */ register_nav_menu ( 'primary-menu', __('Primary Menu', 'thanhgiang') ); register_nav_menu ( 'about-menu', __('About Menu', 'thanhgiang') ); register_nav_menu ( 'edu-menu', __('Education Menu', 'thanhgiang') ); register_nav_menu ( 'contact-menu', __('Contact Menu', 'thanhgiang') ); register_nav_menu ( 'footer-01-menu', __('Footer 01 Menu', 'thanhgiang') ); register_nav_menu ( 'footer-02-menu', __('Footer 02 Menu', 'thanhgiang') ); register_nav_menu ( 'footer-03-menu', __('Footer 03 Menu', 'thanhgiang') ); /* * Tạo sidebar cho theme */ $sidebar = array( 'name' => __('Main Sidebar', 'thanhgiang'), 'id' => 'main-sidebar', 'description' => 'Main sidebar for thanhgiang theme', 'before_widget' => '', 'after_widget' => '', 'class' => 'main-sidebar', 'before_title' => '<h3 class="widgettitle title-3">', 'after_title' => '</h3>' ); register_sidebar( $sidebar ); } add_action ( 'init', 'thanhgiang_theme_setup' ); } function my_function_admin_bar() { return false; } add_filter('show_admin_bar', 'my_function_admin_bar'); function create_custom_post_type() { $label = array( 'name' => __('Sliders', 'thanhgiang'), 'singular_name' => __('Slider', 'thanhgiang'), 'menu_name' => __('Sliders', 'thanhgiang'), 'slider' => 'slider' ); $args = array( 'labels' => $label, //Gọi các label trong biến $label ở trên 'description' => 'Post type đăng slider', //Mô tả của post type 'supports' => array( 'title', 'custom-fields' ), //Các tính năng được hỗ trợ trong post type 'hierarchical' => false, //Cho phép phân cấp, nếu là false thì post type này giống như Post, false thì giống như Page 'public' => true, //Kích hoạt post type 'show_ui' => true, //Hiển thị khung quản trị như Post/Page 'show_in_menu' => true, //Hiển thị trên Admin Menu (tay trái) 'show_in_nav_menus' => true, //Hiển thị trong Appearance -> Menus 'show_in_admin_bar' => true, //Hiển thị trên thanh Admin bar màu đen. 'menu_position' => 5, //Thứ tự vị trí hiển thị trong menu (tay trái) 'menu_icon' => 'dashicons-images-alt', //Đường dẫn tới icon sẽ hiển thị 'can_export' => true, //Có thể export nội dung bằng Tools -> Export 'has_archive' => true, //Cho phép lưu trữ (month, date, year) 'exclude_from_search' => true, //Loại bỏ khỏi kết quả tìm kiếm 'publicly_queryable' => true, //Hiển thị các tham số trong query, phải đặt true 'capability_type' => 'post' // ); register_post_type('slider', $args); } add_action('init', 'create_custom_post_type'); function create_taxonomy() { /* Biến $label chứa các tham số thiết lập tên hiển thị của Taxonomy */ $labels = array( 'name' => __('Slider categories', 'thanhgiang'), 'singular' => __('Slider category', 'thanhgiang'), 'menu_name' => __('Slider categories', 'thanhgiang') ); /* Biến $args khai báo các tham số trong custom taxonomy cần tạo */ $args = array( 'labels' => $labels, 'hierarchical' => true, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, ); /* Hàm register_taxonomy để khởi tạo taxonomy */ register_taxonomy('slider-category', array('slider'), $args); } // Hook into the 'init' action add_action( 'init', 'create_taxonomy', 0 ); /** *thanhgiang_gettext() */ if ( ! function_exists( 'thanhgiang_gettext' ) ) { function thanhgiang_gettext($slug) { global $tg_options; echo __($tg_options[$slug],'thanhgiang'); } } if ( ! function_exists( 'thanhgiang_customer_info' ) ) { function thanhgiang_customer_info() { $id = 0; if(isset($_SESSION['user_id'])){ $id = $_SESSION['user_id']; } $response = wp_remote_get( WP_CRM_API.'/api/portal/clinics/appointment/'.$id); if( is_wp_error( $response ) ) { return $response; // Bail early } $response_body = wp_remote_retrieve_body( $response ); $appointments = json_decode( $response_body ); $sessions_data = array(); foreach ($appointments as $key => $appointment) { $date = $appointment->bookingTime; $sessions_data[] = (object)array( "session" => "Phiên khám ngày " . $date, "doctor" => "BS ".$appointment->doctor->fullName, "date" => $date, "code"=> $appointment ->code, "id"=> $appointment ->id, "prescription" => "#", "testResult" => "#"); } $request = wp_remote_get(WP_CRM_API. '/api/portal/accounts/getpatient?id='.$id ); if( is_wp_error( $request ) ) { return false; // Bail early } $body = wp_remote_retrieve_body( $request ); $data = json_decode( $body ); if( ! empty( $data ) ) { ?> <div class="tab-content"> <div id="info" class="tab-pane fade in active container"> <div class="row"> <div class="col"> <img class="cuscomter-pic img-responsive img-thumbnail" src="<?php echo get_template_directory_uri() . '/img/tempt/missing_avatar.svg'; ?>" /> </div> <div class="col"> <h3><?php echo $data->fullName; ?></h3> <ul> <li>Mã bệnh nhân: <?php echo $data->code; ?></li> <li>Giới tính: <?php echo $data->genderDisplay; ?></li> <li>Điện thoại: <?php echo $data->phoneNumber; ?></li> <li>Hôn nhân: <?php echo $data->phoneNumber; ?></li> <li>Địa chỉ: <?php echo $data->address; ?></li> </ul> <div class="customer-cmd"> <a href="#" onclick="changePassword()">Thay đổi mật khẩu</a> </div> </div> <div class="col"> <ul> <li>Năm sinh: <?php echo $data->yob; ?></li> <li>Email: <?php echo $data->email; ?></li> <li>Nghề nghiệp: <?php echo $data->job; ?></li> </ul> </div> </div> </div> <?php $s_demo = (object)array("sessions" =>(object)$sessions_data); //var_dump($s_demo->sessions); thanhgiang_customer_session($s_demo); $n_demo = (object)array("notices" => (object)array( (object)array( "title" => "Thông báo", "date" => "23/08/2018 15:06", "link" => "#"), (object)array( "title" => "Thông báo", "date" => "23/08/2018 15:06", "link" => "#"), (object)array( "title" => "Thông báo", "date" => "23/08/2018 15:06", "link" => "#"))); thanhgiang_customer_notice($n_demo); } } } if ( ! function_exists( 'thanhgiang_customer_session' ) ) { function thanhgiang_customer_session($data) {?> <div id="session" class="tab-pane fade"> <div class="table-responsive"> <table class="table"> <tr> <th>STT</th> <th>Phiên khám</th> <th>Bác sĩ</th> <th>Thời gian</th> <!-- <th>Toa thuốc</th> --> <th>Kết quả</th> </tr> <?php $count = 1; foreach($data->sessions as $session) { ?> <tr> <td><?php echo $count; ?></td> <td><?php echo $session->session; ?></td> <td><?php echo $session->doctor; ?></td> <td><?php echo $session->date; ?></td> <!-- <td><a onclick="xemtoathuoc(<?php echo $session->code; ?>)" href="<?php echo esc_url( $session->prescription ); ?>">Xem</a></td> --> <td><a onclick="xemkq(<?php echo $session->id; ?>)">Xem KQ</a></td> </tr> <?php $count++; } ?> </table> </div> </div> <?php } } if ( ! function_exists( 'thanhgiang_customer_notice' ) ) { function thanhgiang_customer_notice($data) {?> <div id="notice" class="tab-pane fade"> <div class="table-responsive"> <table class="table"> <tr> <th>STT</th> <th>Tiêu đề</th> <th>Thời gian gửi</th> <th></th> </tr> <?php $count = 1; foreach($data->notices as $notice) { ?> <tr> <td><?php echo $count; ?></td> <td><?php echo $notice->title; ?></td> <td><?php echo $notice->date; ?></td> <td><a href="<?php echo esc_url( $notice->link ); ?>">Xem</a></td> </tr> <?php $count++; } ?> </table> </div> </div> <?php } } /** @ Thiết lập hàm hiển thị logo @ thanhgiang_logo() **/ if ( ! function_exists( 'thanhgiang_logo' ) ) { function thanhgiang_logo() {?> <div class="logo"> <?php global $tg_options; $current_language = pll_current_language(); // Kiểm tra ngôn ngữ và thêm đoạn text tương ứng if ($current_language === 'en') { $url = 'https://sisvietnam.vn/wp-content/uploads/2024/12/sis-logo_en.png'; }elseif ($current_language === 'vi') { $url = get_template_directory_uri() . '/img/sis-logo.png'; } if( !empty($tg_options['logo-image']['url'] )): $url = $tg_options['logo-image']['url']; endif; ?> <a href="<?php echo get_bloginfo( 'url' ); ?>"><img src="<?php echo $url; ?>" alt="SIS logo"/></a> </div> <?php } } if ( ! function_exists( 'thanhgiang_booking_page' ) ) { function thanhgiang_booking_page() { global $tg_options; if( isset($tg_options['booking'])) echo get_permalink( $tg_options['booking'] ); } } if ( ! function_exists( 'thanhgiang_intro' ) ) { function thanhgiang_intro() { global $tg_options; $intro_03_ico = get_template_directory_uri() . "/img/tempt/ico-service.png"; if (!empty($tg_options['intro-03-ico']['url'])): $intro_03_ico = $tg_options['intro-03-ico']['url']; endif; if( isset($tg_options['intro-03'])): $term_id = pll_get_term($tg_options['intro-03']); $cateObj = get_category($term_id); $args = array( 'posts_per_page' => 4, 'cat' => $cateObj->term_id ); $my_posts = new WP_Query( $args ); if($my_posts->have_posts()): ?> <div class="intro-3"> <div class="container"> <div class="tb-col break-640"> <div class="col image"> <?php if(isset($tg_options['intro-03-post'])): $post_id = pll_get_post($tg_options['intro-03-post']); $postObj = get_post($post_id); ?> <h3><?php echo $postObj->post_title; ?></h3> <div> <?php echo $postObj->post_content; ?> </div> <?php endif; ?> </div> <div class="col content"> <h2><img src="<?php echo $intro_03_ico ?>" alt="" /> <?php echo $cateObj->name ?></h2> <ul> <?php while ( $my_posts->have_posts() ): $my_posts->the_post(); $ico = get_field('icon_post'); ?> <li><a href="<?php the_permalink(); ?>"><img src="<?php echo $ico['url'] ?>" alt="" /> <?php strtoupper(the_title()); ?></a></li> <?php endwhile; ?></ul> </div> </div> </div> </div><?php wp_reset_postdata(); endif; endif; if( isset($tg_options['intro-02'])): $term_id = pll_get_term($tg_options['intro-02']); $cateObj = get_category($term_id); $args = array( 'posts_per_page' => 3, 'cat' => $cateObj->term_id, 'post_status' => 'publish' ); $my_posts = new WP_Query( $args ); if($my_posts->have_posts()): ?> <div class="intro-2"> <div class="container"> <h2 class="title-1 fa fa-plus"><?php echo $cateObj->name ?></h2> <div class="row"> <div class="col-md-8"> <?php while ( $my_posts->have_posts() ): $my_posts->the_post(); $date = get_the_date('Y-m-d H:i:s'); ?> <div class="grid-1 clearfix"> <figure> <a href="#" class="imgeffect"> <img class="bgimg" src="<?php the_post_thumbnail_url( 'full' ); ?>" alt="" /> <span class="date"><?php echo date('d', strtotime($date)); ?> <strong><?php echo strtoupper(date('M', strtotime($date))); ?></strong></span> </a> </figure> <div class="content"> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <p><?php the_excerpt(); ?></p> <p><a href="<?php the_permalink(); ?>" class="fa fa-arrow-right"><?php _e('Read More', 'thanhgiang') ?></a></p> </div> </div> <?php endwhile; ?></div> <div class="col-md-4 ads-banner"> <?php $ads01 = get_template_directory_uri() . '/img/ads-banner.jpg'; if( !empty($tg_options['ads01']['url'] )): $ads01 = $tg_options['ads01']['url']; endif;?> <img src="<?php echo $ads01 ?>" alt=""/> <?php $ads02 = get_template_directory_uri() . '/img/ads-banner.jpg'; if( !empty($tg_options['ads02']['url'] )): $ads02 = $tg_options['ads02']['url']; endif; ?> <img src="<?php echo $ads02 ?>" alt=""/> <?php $ads03 = get_template_directory_uri() . '/img/ads-banner.jpg'; if( !empty($tg_options['ads03']['url'] )): $ads03 = $tg_options['ads03']['url']; endif; ?> <img src="<?php echo $ads03 ?>" alt=""/> </div> </div> </div> </div><?php wp_reset_postdata(); endif; endif; ?> <?php $intro_01_bg = "https://sisvietnam.vn/wp-content/uploads/2022/10/call_center_v10.png"; if ($tg_options['intro-01-bg']['url'] != ''): $intro_01_bg = $tg_options['intro-01-bg']['url']; endif; if( isset($tg_options['intro-01']) ): $term_id = pll_get_term($tg_options['intro-01']); $cateObj = get_category($term_id); $args = array( 'posts_per_page' => 2, 'cat' => $cateObj->term_id, 'post_status' => 'publish' ); $my_posts = new WP_Query( $args ); if($my_posts->have_posts()): ?> <div class="intro-1"> <div class="container"> <div class="content"> <h2 class="title-1 fa fa-plus"><?php echo $cateObj->name; ?></h2> <?php while ( $my_posts->have_posts() ): $my_posts->the_post(); $date = get_the_date('Y-m-d H:i:s'); ?> <div class="grid-6 clearfix"> <div class="date-post"> <strong><?php echo date('d', strtotime($date)); ?></strong> <?php echo strtoupper(date('M', strtotime($date))); ?> </div> <div class="descript"> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <p><?php the_excerpt(); ?></p> <a href="<?php the_permalink(); ?>" class="more fa fa-arrow-right"><?php _e('Detail','thanhgiang'); ?></a> </div> </div> <?php endwhile; endif; ?> </div> </div> <a href="https://sisvietnam.vn/tong-dai-cap-cuu-call-center/"> <div class="bg"> <img class="bgimg" src="<?php echo $intro_01_bg; ?>" alt="" /> <!-- <h3><strong>Tư vấn qua tổng đài</strong> call center</h3> <a href="http://demo.dotquy.vn/tong-dai-cap-cuu-call-center" class="btn-1">Xem chi tiết</a> --> </div></a> </div> <?php endif; } } if ( ! function_exists('thanhgiang_employee') ) { function thanhgiang_employee ($department,$taxonomy_name) { $args = array( 'post_type' => 'employee', 'tax_query' => array( array( 'taxonomy' => $taxonomy_name, 'field' => 'term_id', 'terms' => $department->term_id, 'include_children' => false ), ), 'post_status' => 'publish', 'meta_key' => 'order', 'orderby' => 'meta_value', 'order' => 'ASC' ); $my_posts = new WP_Query( $args ); if($my_posts->have_posts()): while ( $my_posts->have_posts() ): $my_posts->the_post(); $index=get_the_ID(); ?> <div class="grid-7 clearfix"> <figure> <a href="#pp-<?php echo $index?>" data-toggle="modal"> <img src="<?php echo get_field('image')['url']; ?>" alt="" /></a></figure> <div class="descript"> <p class="name"><a href="#pp-<?php echo $index?>" data-toggle="modal"><?php echo get_field('position'); ?>: <?php the_title(); ?></a></p> <p><?php echo the_excerpt() ?></p> <div class="more"><a href="#pp-<?php echo $index?>" data-toggle="modal" class="fa fa-arrow-right">Xem chi tiết</a></div> </div> </div> <div id="pp-<?php echo $index?>" class="modal fade bs-example-modal-lg"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button> <div class="grid-7 clearfix"> <figure> <img src="<?php echo get_field('image')['url']; ?>" alt="" /></figure> <div class="descript" style='width:77%'> <p class="name"><?php echo get_field('position'); ?>: <?php the_title(); ?></p> <p><?php echo the_content()?></p> </div> </div> </div> </div> </div> <?php endwhile; wp_reset_postdata(); endif; } } if( !function_exists('thanhgiang_get_about_page')) { function thanhgiang_get_about_page() { $args = array( 'post_type' => 'page', 'post_status' => 'publish', 'meta_key' => '_wp_page_template', 'meta_value' => 'templates/education.php', 'order' => 'ASC' ); $my_posts = new WP_Query( $args ); ?> <div class="content"> <ul> <?php if($my_posts->have_posts()): while ( $my_posts->have_posts() ): $my_posts->the_post(); $index=get_the_ID(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_postdata(); endif; ?> </ul> </div> <?php } } /** @ Thiết lập hàm hiển thị menu @ thanhgiang_menu( $slug ) **/ if ( ! function_exists( 'thanhgiang_menu' ) ) { function thanhgiang_menu( $slug ) { $menu = array( 'theme_location' => $slug, 'container' => '', 'items_wrap' => '<ul class="menu">%3$s</ul>', ); wp_nav_menu( $menu ); } } if ( ! function_exists( 'thanhgiang_about_menu' ) ) { function thanhgiang_about_menu( $slug ) { $menu = array( 'theme_location' => $slug, 'container' => 'div', 'container_class' => 'content', 'items_wrap' => '<ul>%3$s</ul>', ); wp_nav_menu( $menu ); } } if ( ! function_exists( 'thanhgiang_footer_menu' ) ) { function thanhgiang_footer_menu( $slug ) { $menu = array( 'theme_location' => $slug, 'container' => 'div', 'container_class' => 'col-xs-4 col', 'items_wrap' => '<ul class="links">%3$s</ul>', ); wp_nav_menu( $menu ); } } if ( !function_exists('thanhgiang_get_first_image') ) { function thanhgiang_get_first_image() { global $post, $posts; $first_img = ''; if (has_post_thumbnail( $post )) { $first_img = get_the_post_thumbnail_url($post); } else { ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); if(isset($matches [1] [0])) $first_img = $matches [1] [0]; if(empty($first_img)){ //Defines a default image //$first_img = get_template_directory_uri() . '/images/default.jpg'; //Duong dan anh mac dinh khi khong tim duoc anh dai dien $first_img = get_the_post_thumbnail_url($post); } if(empty($first_img)){ //Defines a default image $first_img = get_template_directory_uri() . '/img/default.jpg'; //Duong dan anh mac dinh khi khong tim duoc anh dai dien } } return $first_img; } } /** @ Hàm hiển thị ảnh thumbnail của post. @ Ảnh thumbnail sẽ không được hiển thị trong trang single @ Nhưng sẽ hiển thị trong single nếu post đó có format là Image @ thanhgiang_thumbnail( $size ) **/ if ( ! function_exists( 'thanhgiang_thumbnail' ) ) { function thanhgiang_thumbnail( $size ) { // Chỉ hiển thumbnail với post không có mật khẩu if ( ! is_single() && has_post_thumbnail() && ! post_password_required() || has_post_format( 'image' ) ) : ?> <figure><a class="imgwrap" href="<?php the_permalink(); ?>"><img src="<?php the_post_thumbnail($size); ?>" alt="" /></a></figure><?php endif; } } /** @ Hàm hiển thị tiêu đề của post trong .entry-header @ Tiêu đề của post sẽ là nằm trong thẻ <h1> ở trang single @ Còn ở trang chủ và trang lưu trữ, nó sẽ là thẻ <h2> @ thanhgiang_entry_header() **/ if ( ! function_exists( 'thanhgiang_entry_header' ) ) { function thanhgiang_entry_header() { if ( is_single() ) : ?> <h1 class="entry-title"> <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"> <?php the_title(); ?> </a> </h1> <?php else : ?> <h2 class="entry-title"> <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"> <?php the_title(); ?> </a> </h2><?php endif; } } /** @ Hàm hiển thị thông tin của post (Post Meta) @ thanhgiang_entry_meta() **/ if( ! function_exists( 'thanhgiang_entry_meta' ) ) { function thanhgiang_entry_meta() { if ( ! is_page() ) : echo '<p class="type">'; // Hiển thị tên tác giả, tên category và ngày tháng đăng bài printf( __('Post in %1$s', 'thanhgiang'), get_the_category_list( ', ' ) ); // printf( __(' Our Blog by <a href="%2$s">%1$s</a>', 'thanhgiang'), // get_the_author(), get_the_author_link() ); // Hiển thị số đếm lượt bình luận // if ( comments_open() ) : // echo ' | <a href="#">'; // comments_popup_link( // __('Leave a comment', 'thanhgiang'), // __('1 comment', 'thanhgiang'), // __('% comments', 'thanhgiang'), // __('Read all comments', 'thanhgiang') // ); // echo '</a>'; // endif; echo '</p>'; endif; } } /** @ Hàm hiển thị nội dung của post type @ Hàm này sẽ hiển thị đoạn rút gọn của post ngoài trang chủ (the_excerpt) @ Nhưng nó sẽ hiển thị toàn bộ nội dung của post ở trang single (the_content) @ thanhgiang_entry_content() **/ if ( ! function_exists( 'thanhgiang_entry_content' ) ) { function thanhgiang_entry_content() { if ( ! is_single() && ! is_page() ) : the_excerpt(); else : the_content(); /* * Code hiển thị phân trang trong post type */ $link_pages = array( 'before' => __('<p>Page:', 'thanhgiang'), 'after' => '</p>', 'nextpagelink' => __( 'Next page', 'thanhgiang' ), 'previouspagelink' => __( 'Previous page', 'thanhgiang' ) ); wp_link_pages( $link_pages ); endif; } } /** @ Hàm hiển thị info ở trang chủ **/ if ( !function_exists( 'thanhgiang_info' ) ){ function thanhgiang_info( $id ){ while ( have_posts() ) : the_post(); if ( get_post($id) ) : $page = get_post($id); echo $page->post_content; endif; endwhile; } } /** @ Hàm hiển thị tag của post @ thanhgiang_entry_tag() **/ if ( ! function_exists( 'thanhgiang_entry_tag' ) ) { function thanhgiang_entry_tag() { if ( has_tag() ) : echo '<div class="entry-tag">'; printf( __('Tagged in %1$s', 'thanhgiang'), get_the_tag_list( '', ', ' ) ); echo '</div>'; endif; } } function thanhgiang_set_post_views($postID) { $count_key = 'tg_post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); }else{ $count++; update_post_meta($postID, $count_key, $count); } } //To keep the count accurate, lets get rid of prefetching remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); function thanhgiang_get_post_views($postID){ $count_key = 'tg_post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0 View"; } return $count.' Views'; } function thanhgiang_numeric_posts_nav() { if( is_singular() ) return; global $wp_query; /** Stop execution if there's only 1 page */ if( $wp_query->max_num_pages <= 1 ) return; $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1; $max = intval( $wp_query->max_num_pages ); /** Add current page to the array */ if ( $paged >= 1 ) $links[] = $paged; /** Add the pages around the current page to the array */ if ( $paged >= 3 ) { $links[] = $paged - 1; $links[] = $paged - 2; } if ( ( $paged + 2 ) <= $max ) { $links[] = $paged + 2; $links[] = $paged + 1; } echo '<div class="pager"><ul>' . "\n"; /** Previous Post Link */ if ( get_previous_posts_link() ) printf( '<li>%s</li>' . "\n", get_previous_posts_link() ); /** Link to first page, plus ellipses if necessary */ if ( ! in_array( 1, $links ) ) { $class = 1 == $paged ? ' class="active"' : ''; printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' ); if ( ! in_array( 2, $links ) ) echo '<li>…</li>'; } /** Link to current page, plus 2 pages in either direction if necessary */ sort( $links ); foreach ( (array) $links as $link ) { $class = $paged == $link ? ' class="active"' : ''; printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link ); } /** Link to last page, plus ellipses if necessary */ if ( ! in_array( $max, $links ) ) { if ( ! in_array( $max - 1, $links ) ) echo '<li>…</li>' . "\n"; $class = $paged == $max ? ' class="active"' : ''; printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max ); } /** Next Post Link */ if ( get_next_posts_link() ) printf( '<li>%s</li>' . "\n", get_next_posts_link() ); echo '</ul></div>' . "\n"; } if( ! function_exists( 'the_paginate' ) ) : function the_paginate($args = null) { $defaults = array( 'title' => 'Pages', 'query' => null ); $args = wp_parse_args($args, $defaults); extract($args, EXTR_SKIP); if(is_404()) { return; } $currentPage = null; $totalPage = null; if(empty($query)) { global $wp_query; $query = $wp_query; } $currentPage = stheme_get_paged(); $title .= ':'; $ppp = intval($query->query_vars['posts_per_page']); if($ppp < 1) { return; } $totalPage = intval(ceil($query->found_posts / $ppp)); if($totalPage <= 1) { return; } $paginateResult = '<div id="sPaginate" class="spaginate paginate"><div class="spaginate-inner paginate-inner"><span class="spaginate-title paginate-title">'.$title.'</span>'; if ($currentPage > 1) { $paginateResult .= '<a class="spaginate-prev prev page-item" href="'.get_pagenum_link($currentPage - 1).'">«</a>'; } $paginateResult .= the_paginate_list(1, $totalPage, $currentPage); if ($currentPage < $totalPage) { $paginateResult .= "<a href='" . get_pagenum_link($currentPage + 1) . "' class='spaginate-next next page-item'>»</a>"; } $paginateResult .= "</div></div>"; echo $paginateResult; } endif; if( ! function_exists( 'stheme_paginate' ) ) : function stheme_paginate($args = null) { the_paginate($args); } endif; if( ! function_exists( 'the_paginate_list' ) ) : function the_paginate_list($intStart, $totalPage, $currentPage) { $pageHidden = '<span class="spaginate-hidden hidden">...</span>'; $linkResult = ""; $hiddenBefore = false; $hiddenAfter = false; for ($i = $intStart; $i <= $totalPage; $i++) { if($currentPage === intval($i)) { $linkResult .= '<span class="spaginate-current page-item current">'.$i.'</span>'; } else if(($i <= 6 && $currentPage < 10) || $i == $totalPage || $i == 1 || $i < 4 || ($i <= 6 && $totalPage <= 6) || ($i > $currentPage && ($i <= ($currentPage + 2))) || ($i < $currentPage && ($i >= ($currentPage - 2))) || ($i >= ($totalPage - 2) && $i < $totalPage)) { $linkResult .= '<a class="spaginate-link page-item" href="'.get_pagenum_link($i).'">'.$i.'</a>'; if($i <= 6 && $currentPage < 10) { $hiddenBefore = true; } } else { if(!$hiddenBefore) { $linkResult .= $pageHidden; $hiddenBefore = true; } else if(!$hiddenAfter && $i > $currentPage) { $linkResult .= $pageHidden; $hiddenAfter = true; } } } return $linkResult; } endif; function stheme_get_paged() { $paged = intval(get_query_var('paged')) ? intval(get_query_var('paged')) : 1; return $paged; } function tao_custom_post_type() { $label = array( 'name' => __('Employees','thanhgiang'), 'singular_name' => __('Employee','thanhgiang') ); $args = array( 'labels' => $label, //Gọi các label trong biến $label ở trên 'description' => 'Employee', //Mô tả của post type 'supports' => array( 'title', 'editor', 'excerpt', 'custom-fields' ), //Các tính năng được hỗ trợ trong post type 'hierarchical' => false, //Cho phép phân cấp, nếu là false thì post type này giống như Post, false thì giống như Page 'public' => true, //Kích hoạt post type 'show_ui' => true, //Hiển thị khung quản trị như Post/Page 'show_in_menu' => true, //Hiển thị trên Admin Menu (tay trái) 'show_in_nav_menus' => true, //Hiển thị trong Appearance -> Menus 'show_in_admin_bar' => true, //Hiển thị trên thanh Admin bar màu đen. 'menu_position' => 5, //Thứ tự vị trí hiển thị trong menu (tay trái) 'menu_icon' => 'dashicons-admin-users', //Đường dẫn tới icon sẽ hiển thị 'can_export' => true, //Có thể export nội dung bằng Tools -> Export 'has_archive' => false, //Cho phép lưu trữ (month, date, year) 'exclude_from_search' => false, //Loại bỏ khỏi kết quả tìm kiếm 'publicly_queryable' => true, //Hiển thị các tham số trong query, phải đặt true 'capability_type' => 'post' // ); register_post_type('employee', $args); } add_action('init', 'tao_custom_post_type'); function tao_taxonomy() { /* Biến $label chứa các tham số thiết lập tên hiển thị của Taxonomy */ $labels = array( 'name' => __('Departments','thanhgiang'), 'singular' => __('Department','thanhgiang'), 'menu_name' => __('Departments','thanhgiang') ); /* Biến $args khai báo các tham số trong custom taxonomy cần tạo */ $args = array( 'labels' => $labels, 'hierarchical' => true, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, ); /* Hàm register_taxonomy để khởi tạo taxonomy */ register_taxonomy('department', array('employee'), $args); } // Hook into the 'init' action add_action( 'init', 'tao_taxonomy', 0 ); function add_query_vars_filter( $vars ) { $vars[] = "dep"; return $vars; } add_filter( 'query_vars', 'add_query_vars_filter' ); /** @ Chèn CSS và Javascript vào theme @ sử dụng hook wp_enqueue_scripts() để hiển thị nó ra ngoài front-end **/ function thanhgiang_styles() { /* * Hàm get_stylesheet_uri() sẽ trả về giá trị dẫn đến file style.css của theme * Nếu sử dụng child theme, thì file style.css này vẫn load ra từ theme mẹ */ wp_register_style( 'plugin-style', get_template_directory_uri() . '/css/plugin.css', 'all' ); wp_enqueue_style( 'plugin-style' ); wp_register_style( 'main-style', get_template_directory_uri() . '/css/main.css?v='.time(), 'all' ); wp_enqueue_style( 'main-style' ); wp_register_script( 'plugin-js', get_template_directory_uri() . '/js/plugin.js', array('jquery'),null,true ); wp_enqueue_script( 'plugin-js' ); wp_enqueue_script('params-js', get_template_directory_uri() . '/js/test.js'); wp_localize_script( 'params-js', 'my_ajax_object',array( 'ajax_url' => admin_url( 'admin-ajax.php' ),'siteurl' => get_option('siteurl') )); wp_enqueue_script( 'params-js' ); wp_register_script( 'map-js', get_template_directory_uri() . '/js/map.js', array('jquery'),null,true ); wp_enqueue_script( 'map-js' ); wp_register_script( 'knockout-js', get_template_directory_uri() . '/js/knockout-3.4.2.js', array('jquery'),null,true ); wp_enqueue_script( 'knockout-js' ); wp_register_script( 'knockout-mapping-js', get_template_directory_uri() . '/js/knockout.mapping-latest.js', array('jquery') ,null,true); wp_enqueue_script( 'knockout-mapping-js' ); wp_register_script( 'knockout-validation-js', get_template_directory_uri() . '/js/knockout.validation.min.js', array('jquery') ,null,true); wp_enqueue_script( 'knockout-validation-js' ); wp_register_script( 'moment-js', get_template_directory_uri() . '/js/moment.min.js', array('jquery'),null,true ); wp_enqueue_script( 'moment-js' ); wp_register_script( 'bootstrap-datepicker-js', get_template_directory_uri() . '/js/bootstrap-datepicker.min.js', array('jquery'),null,true ); wp_enqueue_script( 'bootstrap-datepicker-js' ); wp_register_script( 'carousel-js', get_template_directory_uri() . '/js/owl.carousel.js', array('jquery'),null,true ); wp_enqueue_script( 'carousel-js' ); wp_register_script( 'main-js', get_template_directory_uri() . '/js/main.js', array('jquery'),null,true ); wp_enqueue_script( 'main-js' ); } add_action( 'wp_enqueue_scripts', 'thanhgiang_styles' ); function booking_styles() { wp_register_style('booking', get_template_directory_uri() . '/css/bootstrap-datepicker3.min.css', 'all'); $id = pll_get_post( 171 ); if(is_page($id)){ wp_enqueue_style('booking'); }} add_action( 'wp_enqueue_scripts', 'booking_styles' ); //add fix add_action( 'wp_enqueue_scripts', 'booking_styles' ); add_action( 'wp_enqueue_scripts', 'touchSwipe' ); function touchSwipe() { $time = current_time( 'YmdHis' ); // // javascript wp_enqueue_script('my-script', get_template_directory_uri() . '/js/jquery.touchSwipe.min.js?', array('jquery'), $time, true ); } function register_daotao_menus() { register_nav_menu('daotao-menu', __('Menu Đào tạo')); } add_action('after_setup_theme', 'register_daotao_menus'); // sửa từ đây function register_daotao_02_menu() { register_nav_menu('menu-daotao-02', __('menu-daotao-02')); } add_action('after_setup_theme', 'register_daotao_02_menu'); add_action('wp_ajax_load_category_posts', 'load_category_posts_callback'); add_action('wp_ajax_nopriv_load_category_posts', 'load_category_posts_callback'); function load_category_posts_callback() { $cat_id = intval($_GET['cat_id']); $query = new WP_Query([ 'cat' => $cat_id, 'posts_per_page' => 10 ]); if($query->have_posts()) { while($query->have_posts()) { $query->the_post(); echo '<div class="post-item">'; echo '<a href="'.get_permalink().'">'.get_the_title().'</a>'; echo '<div>'.get_the_excerpt().'</div>'; echo '</div>'; } } else { echo '<p>Không có bài viết.</p>'; } wp_die(); }