HEX
Server: nginx/1.16.1
System: Linux VM-0-14-centos 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64
User: www (1000)
PHP: 8.3.31
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.sceybwg.com/wp-content/themes/Modular/static/js/post-filter.js
jQuery(document).ready(function($) {

	// 从 localStorage 恢复选中的标签和分类
	var savedTags = localStorage.getItem('selectedTags') ? localStorage.getItem('selectedTags').split(',') : [];
	var savedCats = localStorage.getItem('selectedCats') ? localStorage.getItem('selectedCats').split(',') : [];

	// 恢复之前的筛选状态
	savedTags.forEach(function(tag) {
		$('input[name="tag"][value="' + tag + '"]').prop('checked', true);
	});

	savedCats.forEach(function(cat) {
		$('input[name="cat"][value="' + cat + '"]').prop('checked', true);
	});

	// 设置高亮状态
	$('input[name="tag"], input[name="cat"]').each(function() {
		if ($(this).is(':checked')) {
			$(this).closest('label').addClass('active');
		}
	});

	// 单选逻辑
	function applySingleSelectionLogic() {
		$('.radio_xintheme').each(function() {
			var $menuItem = $(this).children("ul").children("li");
			var $checkboxes = $menuItem.find('input[type="checkbox"]');

			$checkboxes.on('change', function() {
				if ($(this).is(':checked')) {
					$checkboxes.not(this).prop('checked', false);
				}
			});
		});
	}

	// 初次加载时根据保存的状态筛选文章并应用单选逻辑
	if (savedTags.length > 0 || savedCats.length > 0) {
		filterPosts();
	}
	// 单选逻辑
	applySingleSelectionLogic();

	// 监听复选框变化
	$('input[name="tag"], input[name="cat"]').on('change', function() {
		filterPosts(); // 每当复选框状态变化时,调用 filterPosts 函数

		// 高亮选中的标签和分类
		$('input[name="tag"], input[name="cat"]').each(function() {
			if ($(this).is(':checked')) {
				$(this).closest('label').addClass('active');
			} else {
				$(this).closest('label').removeClass('active');
			}
		});

		// 保存当前的筛选状态到 localStorage
		var tags = [];
		var cats = [];

		$('input[name="tag"]:checked').each(function() {
			tags.push($(this).val());
		});

		$('input[name="cat"]:checked').each(function() {
			cats.push($(this).val());
		});

		localStorage.setItem('selectedTags', tags.join(','));
		localStorage.setItem('selectedCats', cats.join(','));
	});

	function filterPosts(paged = 1) {

		// 获取选中的标签和分类
		var tags = [];
		var cats = [];

		$('input[name="tag"]:checked').each(function() {
			tags.push($(this).val());
		});

		$('input[name="cat"]:checked').each(function() {
			cats.push($(this).val());
		});

		// 发送 AJAX 请求
		$.ajax({
			url: ajaxurl, // WordPress 的全局变量,指向 admin-ajax.php
			type: 'POST',
			data: {
				action: 'dahuzi_filter_posts', // 自定义的 action 名称
				category_id: categoryId,
				tags: tags,
				cats: cats,
				paged: paged, // 传递当前页码
			},
			success: function(response) {
				// 将响应内容插入到结果区域
				$('.post-list-box').html(response.html);
				// 统计筛选结果
				//$('.filter-results-count').text(response.total_posts);
				$('.filter-results-count')
				.parent().removeClass('results-none')  // 移除父元素的 `results-count` class
				.end()  // 返回到 `.filter-results-count` 元素
				.text(response.total_posts)  // 更新文本内容
				.css('display', 'inline-block');  // 设置 `display` 为 `inline-block`

				//移除默认的分页按钮
				$('.theme-pagination').remove();
			},
			error: function() {
				$('.post-list-box').html('<p>无法加载内容,请重试。</p>');
				$('.theme-pagination').remove();
			}
		});
	}

	// 监听分页按钮点击
	$(document).on('click', '.filter-pagination a', function(e) {
		e.preventDefault(); // 阻止默认链接跳转行为
		var paged = $(this).data('page'); // 获取页码
		filterPosts(paged); // 调用 filterPosts 函数并传递页码
		// 平滑滚动到 .nav-filter-box 区域
		$('html, body').animate({
			scrollTop: $('.nav-filter-box').offset().top
		}, 0); // 800 是滚动的时间,单位为毫秒
	});

	// 重置按钮操作
	$('.reset-filters').click(function() {
		// 清除保存的筛选状态
		localStorage.removeItem('selectedTags');
		localStorage.removeItem('selectedCats');

		// 清除选中状态
		$('input[name="tag"], input[name="cat"]').prop('checked', false).closest('label').removeClass('active');

		// 重新应用单选逻辑
		applySingleSelectionLogic();

		// 刷新当前页面
		location.reload();
	});

});