Sử dụng ajax tạo popup cho các bài viết wordrpess mattervn.com (ok)
PreviousInstall Linguise on any domain dịch tự động (ok)NextPWA - beforeinstallprompt toplusgames.com (ok)
Last updated
Last updated
C:\xampp82\htdocs\testpro\wp-content\themes\gutener-child\functions.php
add_action('wp_enqueue_scripts', 'add_theme_scripts', 99);
function add_theme_scripts()
{
wp_enqueue_style('carouselcss', get_stylesheet_directory_uri() . '/assets/css/owl.carousel.css', array(), wp_generate_uuid4(), 'all');
wp_enqueue_style('styleathomecss', get_stylesheet_directory_uri() . '/assets/css/dev-custom.css', array(), wp_generate_uuid4(), 'all');
wp_enqueue_script('lazysizesjs', get_stylesheet_directory_uri() . '/assets/js/lazysizes.min.js', array('jquery'), wp_generate_uuid4(), 'true');
wp_enqueue_script('carouseljs', get_stylesheet_directory_uri() . '/assets/js/owl.carousel.js', array('jquery'), wp_generate_uuid4(), 'true');
wp_enqueue_script('styleathomejs', get_stylesheet_directory_uri() . '/assets/js/dev-custom.js', array('jquery'), wp_generate_uuid4(), 'true');
wp_localize_script(
'styleathomejs',
'frontend_ajax_object',
array(
'ajaxurl' => admin_url('admin-ajax.php'),
'ajaxnonce' => wp_create_nonce('ajaxnonce'),
)
);
}
add_action('wp_ajax_func_knowledge_popup', 'func_knowledge_popup');
add_action("wp_ajax_nopriv_func_knowledge_popup", "func_knowledge_popup");
function func_knowledge_popup() {
echo wp_json_encode(['status' => 'success']);
wp_die();
}
C:\xampp82\htdocs\testpro\wp-content\themes\gutener-child\assets\js\dev-custom.js
var $ = jQuery;
jQuery(document).ready(function ($) {
$('.knowledge-popup').click(function (e) {
e.preventDefault(); // prevent
let id = $(this).data('id');
$.ajax({
type: 'POST',
url: frontend_ajax_object.ajaxurl,
data: {
action: 'func_knowledge_popup',
},
success: function (result) {
var result = JSON.parse(result);
if (result.status == 'success') {
var html = '';
html += '<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">';
html += '<div class="modal-dialog">';
html += '<div class="modal-content">';
html += '<div class="modal-header">';
html += '<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>';
html += '<button type="button" class="close" data-dismiss="modal" aria-label="Close">';
html += '<span aria-hidden="true">×</span>';
html += '</button>';
html += '</div>';
html += '<div class="modal-body">';
html += 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Vel, libero?';
html += '</div>';
html += '<div class="modal-footer">';
html += '<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>';
html += '<button type="button" class="btn btn-primary">Save changes</button>';
html += '</div>';
html += '</div>';
html += '</div>';
html += '</div>';
$('#knowledge-append').html(html);
jQuery('#exampleModal').modal('show');
}
}
});
});
});
C:\xampp82\htdocs\testpro\wp-content\themes\gutener-child\category-kien-thuc-chung.php
<?php
/**
* The main template file
*
* This is the most generic template file in a WordPress theme
* and one of the two required files for a theme (the other being style.css).
* It is used to display a page when nothing more specific matches a query.
* E.g., it puts together the home page when no home.php file exists.
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package Gutener
*/
get_header();
?>
<?php
if (is_home() && !get_theme_mod('disable_main_slider', false)) {
if (get_theme_mod('main_slider_controls', 'slider') == 'slider') {
if (get_theme_mod('display_slider_on', 'blog-page-below-header') == 'blog-page-below-header' || get_theme_mod('display_slider_on', 'blog-page-below-header') == 'front-blog-page-below-header') { ?>
<section class="section-banner">
<?php
get_template_part('template-parts/slider/slider', '');
?>
</section>
<?php }
} elseif (get_theme_mod('main_slider_controls', 'slider') == 'banner') {
if (get_theme_mod('display_banner_on', 'blog-page-below-header') == 'blog-page-below-header' || get_theme_mod('display_banner_on', 'blog-page-below-header') == 'front-blog-page-below-header') {
gutener_banner();
}
}
} ?>
<div id="content" class="site-content">
<div class="container">
<?php
//Highlighted Posts Section
if (get_theme_mod('highlight_posts_section_layouts', 'highlighted_one') == '' || get_theme_mod('highlight_posts_section_layouts', 'highlighted_one') == 'highlighted_one') {
get_template_part('template-parts/highlight-posts/highlight-posts', 'one');
} ?>
<!-- Latest Posts Section -->
<?php
$latest_posts_category = get_theme_mod('latest_posts_category', '');
$query = new WP_Query(apply_filters('gutener_blog_args', array(
'post_type' => 'post',
'post_status' => 'publish',
'cat' => $latest_posts_category,
'paged' => get_query_var('paged', 1),
)));
$posts_array = $query->get_posts();
$show_latest_posts = count($posts_array) > 0;
if (!get_theme_mod('disable_latest_posts_section', false) && $show_latest_posts) {
$latest_title_desc_align = get_theme_mod('latest_posts_section_title_desc_alignment', 'left');
if ($latest_title_desc_align == 'left') {
$latest_title_desc_align = 'text-left';
} else if ($latest_title_desc_align == 'center') {
$latest_title_desc_align = 'text-center';
} else {
$latest_title_desc_align = 'text-right';
} ?>
<section class="section-post-area">
<div class="row">
<?php
$sidebarClass = 'col-lg-8';
$sidebarColumnClass = 'col-lg-4';
$masonry_class = '';
if (get_theme_mod('archive_post_layout', 'grid') == 'grid') {
$masonry_class = 'grid';
}
if (get_theme_mod('archive_post_layout', 'grid') == 'grid') {
$layout_class = 'grid-post-wrap';
} elseif (get_theme_mod('archive_post_layout', 'grid') == 'single') {
$layout_class = 'single-post';
}
if (get_theme_mod('sidebar_settings', 'right') == 'right') {
if (get_theme_mod('archive_post_layout', 'grid') == 'grid') {
if (!is_active_sidebar('right-sidebar')) {
$sidebarClass = "col-12";
}
} else {
if (!is_active_sidebar('right-sidebar')) {
$sidebarClass = "col-lg-8 offset-lg-2";
}
}
} elseif (get_theme_mod('sidebar_settings', 'right') == 'left') {
if (get_theme_mod('archive_post_layout', 'grid') == 'grid') {
if (!is_active_sidebar('left-sidebar')) {
$sidebarClass = "col-12";
}
} else {
if (!is_active_sidebar('left-sidebar')) {
$sidebarClass = "col-lg-8 offset-lg-2";
}
}
} elseif (get_theme_mod('sidebar_settings', 'right') == 'right-left') {
$sidebarClass = 'col-lg-6';
$sidebarColumnClass = 'col-lg-3';
if (get_theme_mod('archive_post_layout', 'grid') == 'grid') {
if (!is_active_sidebar('left-sidebar') && !is_active_sidebar('right-sidebar')) {
$sidebarClass = "col-12";
}
} else {
if (!is_active_sidebar('left-sidebar') && !is_active_sidebar('right-sidebar')) {
$sidebarClass = "col-lg-8 offset-lg-2";
}
}
}
if (get_theme_mod('sidebar_settings', 'right') == 'no-sidebar' || get_theme_mod('disable_sidebar_blog_page', false)) {
if (get_theme_mod('archive_post_layout', 'grid') == 'grid') {
$sidebarClass = "col-12";
} else {
$sidebarClass = 'col-lg-8 offset-lg-2';
}
}
if (!get_theme_mod('disable_sidebar_blog_page', false)) {
if (get_theme_mod('sidebar_settings', 'right') == 'left') {
if (is_active_sidebar('left-sidebar')) { ?>
<div id="secondary" class="sidebar left-sidebar <?php echo esc_attr($sidebarColumnClass); ?>">
<?php dynamic_sidebar('left-sidebar'); ?>
</div>
<?php }
} elseif (get_theme_mod('sidebar_settings', 'right') == 'right-left') {
if (is_active_sidebar('left-sidebar') || is_active_sidebar('right-sidebar')) { ?>
<div id="secondary" class="sidebar left-sidebar <?php echo esc_attr($sidebarColumnClass); ?>">
<?php dynamic_sidebar('left-sidebar'); ?>
</div>
<?php
}
}
} ?>
<div id="primary" class="content-area <?php echo esc_attr($sidebarClass); ?>">
<?php if (is_home() && !get_theme_mod('disable_main_slider', false)) {
if (get_theme_mod('main_slider_controls', 'slider') == 'slider') {
if (get_theme_mod('display_slider_on', 'blog-page-below-header') == 'blog-page-above-latest-posts') { ?>
<section class="section-banner">
<?php
get_template_part('template-parts/slider/slider', '');
?>
</section>
<?php }
} elseif (get_theme_mod('main_slider_controls', 'slider') == 'banner') {
if (get_theme_mod('display_banner_on', 'blog-page-below-header') == 'blog-page-above-latest-posts') {
gutener_banner();
}
}
} ?>
<?php if ((!get_theme_mod('disable_latest_posts_section_title', true) && get_theme_mod('latest_posts_section_title', '')) || (!get_theme_mod('disable_latest_posts_section_description', true) && get_theme_mod('latest_posts_section_description', ''))) { ?>
<div class="section-title-wrap <?php echo esc_attr($latest_title_desc_align); ?>">
<?php if (!get_theme_mod('disable_latest_posts_section_title', true) && get_theme_mod('latest_posts_section_title', '')) { ?>
<h2 class="section-title"><?php echo esc_html(get_theme_mod('latest_posts_section_title', '')); ?></h2>
<?php }
if (!get_theme_mod('disable_latest_posts_section_description', true) && get_theme_mod('latest_posts_section_description', '')) { ?>
<p><?php echo esc_html(get_theme_mod('latest_posts_section_description', '')); ?></p>
<?php } ?>
</div>
<?php } ?>
<div class="row <?php echo esc_attr($masonry_class); ?>">
<?php
if ($query->have_posts()) :
if (is_home() && !is_front_page()) :
?>
<header>
<h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
</header>
<?php
endif;
$i = 0;
while ($query->have_posts()) :
$i++;
$query->the_post();
get_template_part('template-parts/content', 'kien-thuc', array('index' => $i));
endwhile;
elseif (!is_sticky() && !$query->have_posts()) :
get_template_part('template-parts/content', 'none');
endif;
?>
</div>
<?php
if (!get_theme_mod('disable_pagination', false)) :
the_posts_pagination(array(
'total' => $query->max_num_pages,
'next_text' => '<span>' . esc_html__('Next', 'gutener') . '</span><span class="screen-reader-text">' . esc_html__('Next page', 'gutener') . '</span>',
'prev_text' => '<span>' . esc_html__('Prev', 'gutener') . '</span><span class="screen-reader-text">' . esc_html__('Previous page', 'gutener') . '</span>',
'before_page_number' => '<span class="meta-nav screen-reader-text">' . esc_html__('Page', 'gutener') . ' </span>',
));
endif;
wp_reset_postdata();
?>
</div><!-- #primary -->
<?php
if (!get_theme_mod('disable_sidebar_blog_page', false)) {
if (get_theme_mod('sidebar_settings', 'right') == 'right') {
if (is_active_sidebar('right-sidebar')) { ?>
<div id="secondary" class="sidebar right-sidebar <?php echo esc_attr($sidebarColumnClass); ?>">
<?php dynamic_sidebar('right-sidebar'); ?>
</div>
<?php }
} elseif (get_theme_mod('sidebar_settings', 'right') == 'right-left') {
if (is_active_sidebar('left-sidebar') || is_active_sidebar('right-sidebar')) { ?>
<div id="secondary-sidebar" class="sidebar right-sidebar <?php echo esc_attr($sidebarColumnClass); ?>">
<?php dynamic_sidebar('right-sidebar'); ?>
</div>
<?php
}
}
}
?>
</div>
</section>
<?php } ?>
<?php
//Featured Posts Section
if (get_theme_mod('feature_posts_section_layouts', 'feature_one') == '' || get_theme_mod('feature_posts_section_layouts', 'feature_one') == 'feature_one') {
get_template_part('template-parts/feature-posts/feature-posts', 'one');
} ?>
</div><!-- #container -->
</div><!-- #content -->
<div id="knowledge-append"></div>
<?php
get_footer();
C:\xampp82\htdocs\testpro\wp-content\themes\gutener-child\template-parts\content-kien-thuc.php
<?php
/**
* Template part for displaying posts
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package Gutener
*/
$index = $args['index'];
?>
<?php
$stickyClass = "col-12";
$layout_class = '';
if (get_theme_mod('sidebar_settings', 'right') == 'right') {
if (get_theme_mod('archive_post_layout', 'grid') == 'grid') {
$stickyClass = "col-sm-6 grid-post";
if (!is_active_sidebar('right-sidebar')) {
$stickyClass = "col-sm-6 col-lg-4 grid-post";
}
}
} elseif (get_theme_mod('sidebar_settings', 'right') == 'left') {
if (get_theme_mod('archive_post_layout', 'grid') == 'grid') {
$stickyClass = "col-sm-6 grid-post";
if (!is_active_sidebar('left-sidebar')) {
$stickyClass = "col-sm-6 col-lg-4 grid-post";
}
}
} elseif (get_theme_mod('sidebar_settings', 'right') == 'no-sidebar') {
if (get_theme_mod('archive_post_layout', 'grid') == 'grid') {
$stickyClass = "col-sm-6 col-lg-4 grid-post"; // default
}
} elseif (get_theme_mod('sidebar_settings', 'right') == 'right-left') {
if (get_theme_mod('archive_post_layout', 'grid') == 'grid') {
$stickyClass = "col-sm-6 col-lg-6 grid-post";
if (!is_active_sidebar('left-sidebar') && !is_active_sidebar('right-sidebar')) {
$stickyClass = "col-sm-6 col-lg-4 grid-post";
}
}
}
if (get_theme_mod('disable_sidebar_blog_page', false) && get_theme_mod('archive_post_layout', 'grid') == 'grid') {
$stickyClass = "col-sm-6 col-lg-4 grid-post";
}
if (!is_sticky() && get_theme_mod('archive_post_layout', 'grid') == 'list') {
$layout_class = 'list-post';
} elseif (!is_sticky() && get_theme_mod('archive_post_layout', 'grid') == 'single') {
$layout_class = 'single-post';
} elseif (is_archive() && is_sticky() && get_theme_mod('archive_post_layout', 'grid') == 'list') {
$layout_class = 'list-post';
} elseif (is_archive() && is_sticky() && get_theme_mod('archive_post_layout', 'grid') == 'single') {
$layout_class = 'single-post';
}
$layout_class .= 'knowledge-popup ';
$class = '';
if (!has_post_thumbnail()) {
$class = 'no-thumbnail';
}
if ($index == 1) :
$stickyClass = "col-sm-12 col-lg-12 grid-post grid-post--__image";
elseif ($index == 2 || $index == 3) :
$stickyClass = "col-sm-6 col-lg-6 grid-post grid-post--__image";
else :
$stickyClass = "col-sm-4 col-lg-4 grid-post grid-post--__image";
endif;
?>
<div class="<?php echo esc_attr($stickyClass); ?>">
<article id="post-<?php the_ID(); ?>" <?php post_class($class . ' ' . $layout_class) ?> data-id="<?php the_ID(); ?>">
<?php
if (has_post_thumbnail()) : ?>
<figure class="featured-image">
<a href="<?php the_permalink(); ?>">
<?php
if (get_theme_mod('sidebar_settings', 'right') == 'right') {
if (get_theme_mod('archive_post_layout', 'grid') == 'grid' || get_theme_mod('archive_post_layout', 'grid') == 'list') {
gutener_image_size('gutener-420-300');
} elseif (get_theme_mod('archive_post_layout', 'grid') == 'single') {
gutener_image_size('gutener-1370-550');
}
} elseif (get_theme_mod('sidebar_settings', 'right') == 'left') {
if (get_theme_mod('archive_post_layout', 'grid') == 'grid' || get_theme_mod('archive_post_layout', 'grid') == 'list') {
gutener_image_size('gutener-420-300');
} elseif (get_theme_mod('archive_post_layout', 'grid') == 'single') {
gutener_image_size('gutener-1370-550');
}
} elseif (get_theme_mod('sidebar_settings', 'right') == 'no-sidebar') {
if (get_theme_mod('archive_post_layout', 'grid') == 'grid' || get_theme_mod('archive_post_layout', 'grid') == 'list') {
gutener_image_size('gutener-420-300');
} elseif (get_theme_mod('archive_post_layout', 'grid') == 'single') {
gutener_image_size('gutener-1370-550');
}
} elseif (get_theme_mod('sidebar_settings', 'right') == 'right-left') {
if (get_theme_mod('archive_post_layout', 'grid') == 'grid' || get_theme_mod('archive_post_layout', 'grid') == 'list') {
gutener_image_size('gutener-420-300');
} elseif (get_theme_mod('archive_post_layout', 'grid') == 'single') {
gutener_image_size('gutener-1370-550');
}
}
?>
</a>
</figure><!-- .recent-image -->
<?php
endif;
?>
<div class="entry-content">
<header class="entry-header">
<?php
if (!get_theme_mod('hide_category', false)) {
gutener_entry_header();
}
if (!get_theme_mod('hide_post_title', false)) {
the_title('<h3 class="entry-title"><a href="' . esc_url(get_permalink()) . '" rel="bookmark">', '</a></h3>');
}
?>
</header><!-- .entry-header -->
<div class="entry-meta">
<?php gutener_entry_footer(); ?>
</div><!-- .entry-meta -->
<?php if (!get_theme_mod('hide_blog_page_excerpt', false) || !get_theme_mod('hide_post_button', true)) { ?>
<div class="entry-text">
<?php
if (!get_theme_mod('hide_blog_page_excerpt', false)) {
$excerpt_length = get_theme_mod('post_excerpt_length', 15);
$sticky_simple_excerpt_length = get_theme_mod('sticky_simple_post_excerpt_length', 40);
if (is_sticky()) {
gutener_excerpt($sticky_simple_excerpt_length, true);
} else {
gutener_excerpt($excerpt_length, true);
}
} ?>
<?php
if (!get_theme_mod('hide_post_button', true) && get_theme_mod('post_button_text', '')) {
$button_type = 'button-text';
if (get_theme_mod('post_button_type', 'button-text') == 'button-primary') {
$button_type = 'button-primary';
} elseif (get_theme_mod('post_button_type', 'button-text') == 'button-outline') {
$button_type = 'button-outline';
} ?>
<div class="button-container">
<a href="<?php the_permalink(); ?>" class="<?php echo esc_attr($button_type); ?>">
<?php
$post_button_text = get_theme_mod('post_button_text', '');
echo esc_html($post_button_text ? $post_button_text : "");
?>
</a>
</div>
<?php } ?>
</div>
<?php } ?>
</div><!-- .entry-content -->
</article><!-- #post-->
</div>