前短时间一个网友提到的功用,不断比拟忙没时间做便拖到了今天。之前也有一些其他网友提过其他的一些功用,有些可能做了,有些可能一忙便忘了,望见谅。博主自己大学时的专业与编程无关,目前也是在学习中,所以有些功用也并不能保证很好地做出来,另外最重要的一点:博客主要是为了催促本人学习而树立的,所以不希望因博客的事务影响正常的学习,并且博客主题修正的也差不多了,之后应该不会有太多主题修正的内容了。下面是此次修正的前端显现效果。
额,下面还是主要说下主题添加最新更新文章列表功用的步骤吧。代码是在 zwwooooo 博主分享的代码根底上修正的,调整了超越更新日期 1 天内的演示款式,并基于 Options Framework 做了后台的控制选项。主题修正前还是提示大家一下,备份!备份!!备份!!!下面简单说下如何配置。
新建 module_recently_updated_posts.php 文件
[wxcaptcha]新建一个名为 module_recently_updated_posts.php 的文件,然后复制以下代码至文件中即可,留意选择 UTF-8 编码格式。将保管后的文件丢到主题文件夹下,DUX 主题丢到 modules 文件夹下即可。
<?php /** *最新更新文章列表 *蝈蝈要安静 | 一个不学无术的伪程序员 *https://blog.quietguoguo.com */ $num = QGG_Options('recently_updated_posts_num'); $days = QGG_Options('recently_updated_posts_days'); function recently_updated_posts($num = 5,$days = 7) { if( !$recently_updated_posts = get_option('recently_updated_posts') ) { $i=0; $args = array( 'post__not_in' =>get_option('sticky_posts'), 'post_status' => 'publish', 'posts_per_page' => -1, 'orderby'=> 'modified', ); query_posts($args); while ( have_posts() && $i < $num ) : the_post(); if (current_time('timestamp') - get_the_time('U') > 60*60*24*$days) { $i++; $t1=get_the_modified_date("Y-m-d H:i:s"); $t2=date("Y-m-d H:i:s"); $diff=(strtotime($t2)-strtotime($t1))/86400; if( $diff < 1){ $color = red; } else { $color = ""; } $the_title_value = get_the_title(); $recently_updated_posts.= '<li style="color:'.$color.';"><a style="color:'.$color.';" href="'.get_permalink().'" title="'.$the_title_value.'">'.$the_title_value.'</a><span style="color:'.$color.';"> 更新于:'.get_the_modified_time('Y.m.d').'</span></li>'; } endwhile; wp_reset_query(); if ( !empty($recently_updated_posts) ) update_option('recently_updated_posts', $recently_updated_posts); } $recently_updated_posts = ($recently_updated_posts == '') ? '<li>暂无最新更新文章</li>' : $recently_updated_posts; echo '<div class="posts_list_block"> <div class="title"><h3>'.QGG_Options('recently_updated_posts_title').'</h3></div> <div class="posts_list_block_bg"><ul>'.$recently_updated_posts.'</ul></div> </div>'; } recently_updated_posts($num,$days); ?>
代码主要用于生成最近更新的文章列表,然后将其保管在名为 recently_updated_posts 的数据库字段里,你能够在 wp_options 数据表里找到它。主要是为了减少数据库查询量而设置的。[/wxcaptcha]
functions.php 文件修正
由于上面生成的文章列表以静态的方式保管在了 wp_options 数据表里,为了我们每次发布/更新文章后都能生成新的最新更新文章列表,需求清空原有 recently_updated_posts 字段信息并生成新的信息,所以需求将以下代码丢到主题的 functions.php 文件中,以确保每次发布/更新文章时都能清空 recently_updated_posts 的字段信息。
//新发表文章/修正文章时清空 recently_updated_posts 选项 function clear_rup_cache() { update_option('recently_updated_posts', ''); } add_action('save_post', 'clear_rup_cache');
options.php 文件修正
由于博客目前运用的主题采用的 然后我们修正下主题下的 Options Framework 做的后台控制选项,所以我也基于此设置了对应的后台选项。当然其他主题直接修正 module_recently_updated_posts.php 文件中的代码以契合本人网站也是能够的。
// 首页最新更新文章列表 $options[] = array( 'name' => __('最新更新文章', 'QGG'), 'desc' => __('开启', 'QGG'), 'id' => 'recently_updated_open', 'std' => true, 'type' => 'checkbox'); $options[] = array( 'name' => __('最新更新文章-标题文字', 'QGG'), 'desc' => __('显现在最新更新文章列表左上角的标题文字', 'QGG'), 'id' => 'recently_updated_posts_title', 'std' => __('最新更新文章', 'QGG'), 'type' => 'text'); $options[] = array( 'name' => __('最新更新文章-显现文章数', 'QGG'), 'desc' => __('纯数字,最多允许几篇最新文章显现', 'QGG'), 'id' => 'recently_updated_posts_num', 'std' => 5, 'class' => 'mini', 'type' => 'text'); $options[] = array( 'name' => __('最新更新文章-几天外', 'QGG'), 'desc' => __('纯数字,几天以外的文章更新后才显现。不明白?<a href="https://blog.quietguoguo.com">点击这里</a> 停止留言。', 'QGG'), 'id' => 'recently_updated_posts_days', 'std' => 7, 'class' => 'mini', 'type' => 'text');
将以上代码丢到 options.php 文件中去即可,修正完成后应该会在主题后台看到如下选项:
控制前端显现代码
在主题的 index.php 文件中适宜的位置插入如下代码,留意代码中的途径改成第一步中 module_recently_updated_posts.php 文件的实践途径。
<?php if( QGG_options('recently_updated_open') ){ include get_stylesheet_directory() . '/modules/module_recently_updated_posts.php'; } ?>
保管后台配置选项,刷新首页应该就能看到前端显现的内容了。
CSS 款式美化
默许的款式不太美观,这里简单美化一下,CSS 不适宜的大家自行调整下即可。
/* 最新更新文章列表 */ .posts_list_block{ margin: 5px 0px; } .posts_list_block_bg { background:#FFF; padding:1px 20px; margin:10px 0px; border-radius:4px; } .posts_list_block_bg ul{ padding: 20px 10px; list-style-position: inside !important; list-style: disc; overflow: hidden; } .posts_list_block_bg li{ line-height: 24px; white-space: nowrap; overflow: hidden; clear: both; text-overflow: ellipsis; } .posts_list_block_bg ul>li>span{ color: #999; font-size: 12px; line-height: 24px; float: right; }
最后,为了防止复制代码招致的错误,上面一切用到的代码文后会提供下载。
感谢您的来访,获取更多精彩文章请收藏本站。
![](https://www.gyzsq.com/wp-content/uploads/2022/07/9259adea4619.gif)
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
![头像](/wp-content/themes/zibll/img/avatar-default.png)