我们在最近给客户做WordPress主题定制开发的时候,需要在列表页做一个按照月份筛选的功能,同时还包含关键词的搜索筛选,考虑到用户体验,我们决定在当前分类列表模板页面直接进行多条件筛选,直接通过url传参来实现,而不是跳转到月份归档页或者是搜索结果页。页面效果图如下所示:
实现之前呢,我们一般都会去考虑WordPress有没有现成的方法或者函数能够实现,那么WordPress本身是有一个按照年度、月度、周、日等对文章进行归档的函数wp_get_archives(),但是的这个只能实现点击对应月份直接跳转到对应月份的文章归档页,这样就不能关联用户所选择的分类以及输入的搜索关键词,所以并不能直接实现我们想要的效果。
然后,我就去WordPress后台查看文章列表页的按时间筛选的html代码,然后去WordPress文件中搜索相关的内容,功夫不负有心人,很容易就找到了,但是好像WP并没有直接定义成一个可通用的函数,所以就自己参考WP的代码定义了一个自定义的函数,具体代码如下:
//获取指定文章类型的月份归档
//https://www.wp-diary.com
//WordPress日记
function mx_get_posts_months($post_type){
global $wpdb;
$months = array();
$months = $wpdb->get_results(
$wpdb->prepare(
"
SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month
FROM $wpdb->posts
WHERE post_type = %s
AND post_status = 'publish'
ORDER BY post_date DESC
",
$post_type
)
);
return $months;//返回的数据格式array('202211','202212');
}
那么我们就可以把这个函数放到主题的functions.php中,然后调用这个函数获取到有文章的年月数据,通过循环输出成seclect下拉选项,然后使用js进行跳转就可以了。
WordPress日记主要承接WordPress主题定制开发、PSD转WordPress、WordPress仿站以及以WordPress为管理后端的小程序、APP,我们一直秉持“做一个项目,交一个朋友”的理念,希望您是我们下一个朋友。如果您有WordPress主题开发需求,可随时联系QQ:919985494
相关文章
如何修复“您的网站出现严重错误”错误?
您想知道如何解决“您的网站出现严重错误”错误吗?WordPr…安装多个WordPress实例
如果您需要多个 WordPress 实例,则有三种基于系统架…如果给WordPress 编辑器添加“下一页”分页按钮
不少朋友总喜欢给长一点的文章进行分页,但是默认情况下,在Wo…如何加载 Javascript 和 CSS 到 WordPress主题前端、后端或插件
正确加载 jQuery、Javascript 和 CSS 到…WordPress图片实现真正延迟加载-加快页面打开速度节省服务器资源
网页打开速度的好慢直接影响到网站的访问,大多数用户基本上不会…真实案例看WordPress之强大系列一:厨师秀官方网站
WordPress可以说是目前全球范围内使用最多的一套网站建…