Wordpress小技巧(一)
★★★ Wordpress发表Post文章时,页面会出现评论框,如何禁止出现评论框。步骤如下:
一.使用wordpress的后台功能关闭文章评论依次进入"后台"—"设置"—"讨论",会出现下图所示设置页面:
二.主要就是上图中的两个选项了,如果想关闭全站评论就把那个自动关闭发布**天以后的文章评论,并把时间设置为0并打上勾。如果想关闭最新文章的评论就把第一个勾去掉。
★★★ 禁止wordpress上传图片时生成多余的缩略图:
1.在外观编辑里找到function.php文件或者在服务器下查找xx.com/wp-content/thems/xx主题/function.php.
2.打开function.php,查找add_theme_support,并注销。
3.继续查找add_image_size,并注销。
4.打开后台设置-多媒体,设置为下图所示,保存修改即可。
★★★查看站点时,会出现下面的现象:
解决方法是:打开后台-user-edit
去掉就可以啦。
★★★ 如何批量开启,关闭文章评论。
如果需要批量设置wordpress文章的评论选项,在phpmyadmin或者mysql命令行里运行sql语句即可:
批量关闭文章评论:
UPDATE `wp_posts` SET `comment_status` = 'closed' WHERE `wp_posts`.`ID` >1;
复制代码
批量开启文章评论:
UPDATE `wp_posts` SET `comment_status` = 'open' WHERE `wp_posts`.`ID` >1;
运行以上语句即可批量设置wordpress文章是否允许评论
★★★ 如何打开wordpress的评论框
在想打开的模板文件中输入<?php comment_form(); ?>,即可调用wordpress的评论框
可以查看具体评论框开发https://www.wpdaxue.com/wordpress-comment_form.html
★★★ 阻止垃圾评论
五种防垃圾评论介绍:
https://www.freehao123.com/wordpress-spam/
// 垃圾评论拦截
class anti_spam { function anti_spam() { if ( !current_user_can('level_0') ) { add_action('template_redirect', array($this, 'w_tb'), 1); add_action('init', array($this, 'gate'), 1); add_action('preprocess_comment', array($this, 'sink'), 1); } } function w_tb() { if ( is_singular() ) { ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#", "textarea$1name=$2w$3$4/textarea><textarea name=\"comment\" cols=\"100%\" rows=\"4\" style=\"display:none\"></textarea>",$input);') ); } } function gate() { if ( !empty($_POST['w']) && empty($_POST['comment']) ) { $_POST['comment'] = $_POST['w']; } else { $request = $_SERVER['REQUEST_URI']; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '隐瞒'; $IP = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透过D理)' : $_SERVER["REMOTE_ADDR"]; $way = isset($_POST['w']) ? '手动操作' : '未经评论表格'; $spamcom = isset($_POST['comment']) ? $_POST['comment'] : null; $_POST['spam_confirmed'] = "请求: ". $request. "\n来路: ". $referer. "\nIP: ". $IP. "\n方式: ". $way. "\n內容: ". $spamcom. "\n -- 记录成功 --"; } } function sink( $comment ) { if ( !empty($_POST['spam_confirmed']) ) { if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment; //方法一: 直接挡掉, 將 die(); 前面两斜线刪除即可. //die(); //方法二: 标记为 spam, 留在资料库检查是否误判. add_filter('pre_comment_approved', create_function('', 'return "spam";')); $comment['comment_content'] = "[ 判断这是 Spam! ]\n". $_POST['spam_confirmed']; } return $comment;
}
}
$anti_spam = new anti_spam();
★★★ wordpress调取tag描述
<?php echo tag_description(); ?>
// 分页 require get_template_directory() . '/inc/functions/pagenavi.php'; // 分页 function ality_page_nav( ) { global $wp_query; if ( $wp_query->max_num_pages > 1 ) : ?> <nav id="nav-below"> <div><?php previous_posts_link( 上一页 ); ?></div> <div><?php next_posts_link( 下一页 ); ?></div> </nav> <?php endif; } Function.php函数 <?php function pagenavi( $before = '', $after = '', $p = 3 ) { if ( is_singular() ) return; global $wp_query, $paged; $max_page = $wp_query->max_num_pages; if ( $max_page == 1 ) return; if ( empty( $paged ) ) $paged = 1; echo $before.'<nav id="pagenavi">'."\n"; if ( $paged > 1 ) p_link( $paged - 1, '上页', '上页' ); if ( $paged > $p + 1 ) p_link( 1, '第一页' ); if ( $paged > $p + 2 ) echo '<span>...</span>'; for( $i = $paged - $p; $i <= $paged + $p; $i++ ) { if ( $i > 0 && $i <= $max_page ) $i == $paged ? print "<span class='page-numbers current'>{$i}</span>" : p_link( $i ); } if ( $paged < $max_page - $p - 1 ) echo '<span>...</span>'; if ( $paged < $max_page - $p ) p_link( $max_page, '最后一页' ); if ( $paged < $max_page ) p_link( $paged + 1,'下页', '下页' ); echo '</nav>'.$after."\n"; } function p_link( $i, $title = '', $linktype = '' ) { if ( $title == '' ) $title = "第 {$i} 页"; if ( $linktype == '' ) { $linktext = $i; } else { $linktext = $linktype; } echo "<a href='", esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$linktext}</a>"; } ?>
★★★ wordpress给分类目录添加自定义字段,写在function.php文件中
//自定义字段
global $texonomy_slug_keywords; $texonomy_slug_keywords='category'; add_action($texonomy_slug_keywords.'_add_form_fields','categorykeywords'); function categorykeywords($taxonomy){ ?> <div> <label for="tag-keywords">分类关键词</label> <input type="text" name="tag-keywords" id="tag-keywords" value="" /><br /><span>请在此输入分类关键词。</span> </div> <?php } add_action($texonomy_slug_keywords.'_edit_form_fields','categorykeywordsedit'); function categorykeywordsedit($taxonomy){ ?> <tr> <th scope="row" valign="top"><label for="tag-keywords">关键词</label></th> <td><input type="text" name="tag-keywords" id="tag-keywords" value="<?php echo get_option('_category_keywords'.$taxonomy->term_id); ?>" /><br /><span>请在此输入分类关键词。</span></td> </tr> <?php } add_action('edit_term','categorykeywordssave'); add_action('create_term','categorykeywordssave'); function categorykeywordssave($term_id){ if(isset($_POST['tag-keywords'])){ if(isset($_POST['tag-keywords'])) update_option('_category_keywords'.$term_id,$_POST['tag-keywords'] ); } }
//分类标题 global $category_slug_title; $category_slug_title='category'; add_action($category_slug_title.'_add_form_fields','categorytitle'); function categorytitle($category){ ?> <div> <label for="tag-title">分类标题</label> <input type="text" name="tag-title" id="tag-title" value="" /><br /><span>请在此输入分类标题。</span> </div> <?php } add_action($category_slug_title.'_edit_form_fields','categorytitleedit'); function categorytitleedit($category){ ?> <tr> <th scope="row" valign="top"><label for="tag-title">分类标题</label></th> <td><input type="text" name="tag-title" id="tag-title" value="<?php echo get_option('_category_title'.$category->term_id); ?>" /><br /><span>请在此输入分类标题。</span></td> </tr> <?php } add_action('edit_term','categorytitlesave'); add_action('create_term','categorytitlesave'); function categorytitlesave($term_id){ if(isset($_POST['tag-title'])){ if(isset($_POST['tag-title'])) update_option('_category_title'.$term_id,$_POST['tag-title'] ); } }
★分类目录添加自定义字段,读取字段的值:写在模板文件中:content.php/singel.php
**title展示** <?php if ( is_category() ) { $category_info = get_the_category(); $category_id = $category_info[0]->cat_ID;$cat_title = get_option('_category_title'.$category_id);?><title><?php echo $cat_title;?>| <?php bloginfo('name'); ?></title><?php } ?> **keywords获取值** <?php if(is_category()){ $category_info = get_the_category(); $category_id = $category_info[0]->cat_ID; $cat_keywords = get_option('_category_keywords'.$category_id); ?> <meta name="keywords" content="<?php echo $cat_keywords;?>"/>
★★★ wordpress规范url :www.xxx.com/xxx/ 写在function.php函数中
function nice_trailingslashit($string, $type_of_url) { if ( $type_of_url != 'single' ) $string = trailingslashit($string); return $string; } add_filter('user_trailingslashit', 'nice_trailingslashit', 10, 2);
★★★WordPress 设置必须用户登录才能显示的隐藏内容
/***
*WordPress 设置必须用户登录才能显示的隐藏内容
*https://www.endskin.com/user-registered-display/
*/
function Bing_members_only_shortcode( $atts, $content = null ){ if( is_user_logged_in() && !empty( $content ) && !is_feed() ) return $content; return __( '此内容必须登录才能查看', 'Bing' ); } add_shortcode( 'members_only', 'Bing_members_only_shortcode' );
在文章中使用简码(短代码)包裹起来要登录才能显示的内容:
[members_only]
此内容只能在登录后查看
[/members_only]
如果在 Feed 中则直不用登录也可以查看内容,如果你希望在 Feed 中无法插件此内容可以将一开始的代码替换成下边的:
1 2 3 4 5 6 7 8 9 |
/*** *WordPress 设置必须用户登录才能显示的隐藏内容 *Feed 中无法查看 *https://www.endskin.com/user-registered-display/ */ function Bing_members_only_shortcode( $atts, $content = null ){ if( is_user_logged_in() && !empty( $content ) ) return $content; if( is_feed() ) return; return __( '此内容必须登录才能查看,Feed 中无法查看', 'Bing' ); }add_shortcode( 'members_only', 'Bing_members_only_shortcode' ); |
//隐藏部分内容
function login_to_read($atts, $content=null) { extract(shortcode_atts(array("notice" => ' <span style="color: red;">温馨提示:</span>此处内容需要<a title="登录后可见" href="http://localhost/wordpress/wp-admin/">登录</a>后才能查看! '), $atts)); if ( is_user_logged_in() && !is_null( $content ) && !is_feed() ) return $content; return $notice; } add_shortcode('vip', 'login_to_read') ?>
只用在html文本编辑框中填写[vip]内容[/vip]即可。
★★★★★★★★★
如果你的WordPress根目录没有robots.txt,当有人访问这个文件时,WordPress程序会动态生成一个robots.txt给用户,如果你自己上传自己编写的robots.txt到网站根目录,用户和爬虫访问的就是你的文件,WP就不会再生成那个文件了。服务器找不到那个文件的时候WP才会生成那个文件。
Wordpress小技巧(一)的更多相关文章
- D3D9 优化小技巧
此篇文章主要讲一些小技巧,针对前面转载的D3D9 GPU Hacks,我们可以做的一些优化. 在做延迟渲染或者其它需要深度的地方使用INTZ格式的纹理,这样可以直接对纹理进行操作,节省了显存和带宽,这 ...
- 一些实用的 Laravel 小技巧
Laravel 中一些常用的小技巧,说不定你就用上了. 1.侧栏 网站一般都有侧栏,用来显示分类,标签,热门文章,热门评论啥的,但是这些侧栏都是相对独立的模块,如果在每一个引入侧栏的视图中都单独导入与 ...
- 前端网络、JavaScript优化以及开发小技巧
一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN ...
- Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具
前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...
- 分享两个BPM配置小技巧
1.小技巧 流程图修改后发布的话版本号会+1,修改次数多了之后可能会导致版本号很高,这个时候可以将流程导出,然后删除对应的流程包再导入,发布数据模型和流程图之后,版本清零 2.小技巧 有的同事入职后使 ...
- linux系统维护时的一些小技巧,包括系统挂载新磁盘的方法!可收藏!
这里发布一些平时所用到的小技巧,不多,不过会持续更新.... 1.需要将history创建硬链接ln 全盘需要备份硬链接 ln /etc/xxx /home/xxx 2.root用户不可以远程 /et ...
- JS处理事件小技巧
今天,就分享一下我自己总结的一些JS的小技巧: ①防止鼠标选中事件 <div class="mask" onselectstart="return false&qu ...
- iOS:小技巧(不断更新)
记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...
- css小技巧(1)
1.-webkit-overflow-scrolling: touch; 解决ios滑动时无缓冲问题 2.::-webkit-scrollbar 设置ios滑动时是否显示滚动条 3.::selecti ...
- 最强 Android Studio 使用小技巧和快捷键
写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...
随机推荐
- CSP 2021 入门级
CSP 2021 入门级(DONE) 1.C 语言不支持面向对象. 2.计算机界的最高奖项"图灵奖"以英国的阿兰·艾伦·图灵命名,被称为"计算机界的诺贝尔奖". ...
- lodash已死?radash最全使用介绍(附源码详细说明)—— Array方法篇(1)
相信很多前端同学甚至非前端都或多或少使用过lodash库,我们都知道lodash是一个非常丰富的前端工具库,比如最常用的防抖和节流,使用lodash都能很快实现,在github上更是有着58.7k的s ...
- #Tarjan,SPFA#洛谷 3627 [APIO2009] 抢掠计划
题目 分析 首先重复走,钱只会计算一次,而且与路程长度无关,考虑有向图缩点,然后跑最长路,这里吧边权取反跑最短路,然后在酒吧结束也就是求\(-dis[col_x]\)的最大值,\(col_x\)也就是 ...
- #树状数组#洛谷 4113 [HEOI2012]采花
题目 分析 与HH的项链类似 离线处理询问,按右端点排序,维护最近的颜色和第二近的颜色,修改以第二近的颜色为准 换句话说,若最近颜色的位置为\(pos2\),第二近颜色的位置为\(pos1\) 加入一 ...
- 资讯速递 | ArkUI-X 预览版已正式开源!
OpenHarmony项目群技术指导委员会(以下简称"TSC")-跨平台应用开发框架TSG所孵化项目 -- ArkUI-X,近期已正式开源 ,开发者基于一套主代码,就可以将在Op ...
- 知识图谱增强的KG-RAG框架
昨天我们聊到KG在RAG中如何发挥作用,今天我们来看一个具体的例子. 我们找到一篇论文: https://arxiv.org/abs/2311.17330 ,论文的研究人员开发了一种名为知识图谱增强的 ...
- 如何在HarmonyOS对数据库进行备份,恢复与加密
数据库备份与恢复 场景介绍 当应用在处理一项重要的操作,显然是不能被打断的.例如:写入多个表关联的事务.此时,每个表的写入都是单独的,但是表与表之间的事务关联性不能被分割. 如果操作的过程中出现问题, ...
- 解密方舟的高性能内存回收技术——HPP GC
原文:https://mp.weixin.qq.com/s/o8uuP1XViIyviveL4m-8ZQ,点击链接查看更多技术内容. 众所周知,内存是操作系统的一项重要资源,直接影响系统性能.而在应用 ...
- 进阶 stack smashing--canary 报错利用 && environ泄露栈地址
进阶 stack smashing--canary 报错利用 && environ泄露栈地址 这部分是对进阶stack smashing的使用,以及对 environ的认识,我们可以看 ...
- 面向切面编程AOP[一](java 代码详解)
前言 说句实话,在工作中,使用的aop不是特别多,但是特别重要,一般是辅助程序,在现代开发者辅助程序相当重要,比如说我们需要打印一些log,但是我们不可能去卸载我们的业务程序中,因为这太..... 正 ...