–next page–> 在日志或页面中插入分页 截断日志 显示管理员的相关控制信息 显示载入页面查询 ---- ---- 1. wordpress调用最新文章 WordPress最新文章的调用可以使用一行很简单的模板标签wp_get_archvies来实现. 代码如下: Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $my_query...php endwhile; } } wp_reset_query(); ?> 5.wordpress调用指定分类的文章 9.wordpress判断语句 is_single() 判断是否是具体文章的页面 is_single(’2′) 判断是否是具体文章(id=2)的页面 is_single(’Beef Stew’) 判断是否是具体文章
https://developer.wordpress.org/reference/hooks/wp_loaded/ 4.admin_init 当管理员页面或脚本正在初始化时触发,当用户访问管理区域时,...,用于管理重定向规则。...php $wpdb -> get_results('query'); $wpdb->query('query'); $wpdb->get_var('query',column_offset,row_offset...); $wpdb->get_row('query', output_type, row_offset); $wpdb->get_col('query',column_offset); $wpdb...博客所有者可以控制用户写文章、创建页面、管理插件、管理主题,以及管理其他用户的权限。博客所有者可以通过该工具分配用户权限。
> 日志或页面标题 WordPress主题样式表文件style.css的相对地址 在日志或页面中插入分页 截断日志 显示管理员的相关控制信息 显示载入页面查询 wordpress调用最新文章 WordPress最新文章的调用可以使用一行很简单的模板标签wp_get_archvies来实现....= new WP_Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $my_query->...> 9.wordpress判断语句 is_single() 判断是否是具体文章的页面 is_single(’2′) 判断是否是具体文章(id=2)的页面 is_single(‘Beef Stew’) 判断是否是具体文章
如果 WordPress 后台文章比较多,在进行 debug 的时候,对方告诉你 ID 的时候,在文章列表是无法快速定位到对应的文章的,可以通过下面的代码让 WordPress 在后台文章列表搜索支持...ID: add_filter('posts_clauses', function ($clauses, $wp_query){ if($wp_query->is_main_query() && $wp_query...$wpdb->posts.'.post_title LIKE', '('.$wpdb->posts.'.ID = '.$search_term.') OR ('....$wpdb->posts.'.post_title LIKE', '('.$wpdb->posts.'.ID in ('.$search_term.')) OR ('....查询当前页面生成花了多少时间 查询当前页面有多少条 SQL 查询 并罗列出当前页面所有 SQL
> 显示博客的描述信息 其它的一些WordPress模板代码 /%postname%/ 显示博客的自定义永久链接query(); ?> 搜索表单的值 在日志或页面中插入分页 截断日志 显示管理员的相关控制信息 显示载入页面查询 wordpress调用最新文章 WordPress最新文章的调用可以使用一行很简单的模板标签wp_get_archvies来实现. 代码如下: Query($args);if( $my_query->have_posts() ) {while ($my_query->have_posts()) : $my_query->the_post...phpendwhile;}}wp_reset_query();?> 5.wordpress调用指定分类的文章 <?
$id; // 直接拼接参数至SQL语句$results = $wpdb->query($sql); // 执行查询,无安全校验当攻击者传入恶意参数(如id=1 and (select 1 from (...(二)未使用WordPress安全查询机制WordPress内核提供了$wpdb->prepare()方法,用于安全构造SQL语句,通过占位符替换的方式,自动对用户输入参数进行转义,避免SQL注入漏洞。...但Fontsy插件的开发者未使用该安全方法,而是直接使用$wpdb->query()执行拼接后的SQL语句,忽略了WordPress内置的安全防护机制。...SQL注入查询网站数据库中的所有数据,包括WordPress管理员账号密码(哈希值)、用户个人信息(姓名、邮箱、手机号)、网站内容(文章、页面、评论)等,后续可通过破解密码哈希值,获取管理员登录权限。...对于已安装Fontsy插件(版本≤1.8.6)的网站,立即登录WordPress后台,进入“插件管理”页面,卸载该插件,彻底消除漏洞隐患。
WordPress 有一个权威 URL(Canonical URL)的概念,可以帮你避免一些 404 问题,跳转到正确的页面。...但是如果你的博客有多个 post type 的话,这样导向会失效,我们可以在当前主题的 functions 文件中添加如下代码,提高 404 页面导向正确的页面的效率: //解决日志改变 post type...= $wp_query->query_vars['name'] ) : global $wpdb; $query = $wpdb->prepare("SELECT post_id...FROM $wpdb->postmeta WHERE meta_key = '_wp_old_slug' AND meta_value = %s", $wp_query->query_vars['name...']); $id = (int) $wpdb->get_var($query); if ( !
作者:LoRexxar'@知道创宇404实验室 发表时间:2017年10月25日 0x01 前言 WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。...举个例子,当我们编辑文章的时候,页面会返回文章的相关信息,不同位置的信息就会经过不同的转义。...当我们传入 $post_type = "post"; $post_status = "test'"; 进入语句 $wpdb->prepare( "SELECT ID FROM $wpdb->posts...0x05 Wordpress插件安全 其实Wordpress的插件安全一直都是Wordpress的安全体系中最最薄弱的一环,再加上Wordpress本身的超级管理员信任问题,可以说90%的Wordpress...本身并没有做任何的处理,当你的用户权限为超级管理员时,wordpress默认你可以对自己的网站负责,你可以修改插件文件、上传带有后门的插件,这可以导致后台几乎可以等于webshell。
首先,这是一个演示该漏洞的快速视频: 漏洞 该漏洞发生在 WordPress Query ( WP_Query ) 类中。WP_Query对象用于对 WordPress 数据库执行自定义查询。.../wp-admin/admin-ajax.php admin-ajax.php页面检查请求是否由经过身份验证的用户发出。...of the SQL statement prepared using the user-input $clauses = $this->tax_query->get_sql( $wpdb->posts...$this->request = "SELECT $found_rows $distinct {$wpdb->posts}.ID FROM {$wpdb->posts} $join WHERE 1=1...查看完整尺寸 图 7 - wordpress/wp-includes/class-wp-tax-query.php 的 clean_query 方法 结论 对 WordPress 网站的主动攻击通常集中在可选插件上
文章搞得乱七八糟给大家添麻烦了,干货不多,有需要的人阅读就好了 0x01 前言 WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。...举个例子,当我们编辑文章的时候,页面会返回文章的相关信息,不同位置的信息就会经过不同的转义。 对于sql注入的转义 在Wordpress中,关于sql注入的防御逻辑比较特别。...当我们传入 $post_type = "post"; $post_status = "test'"; 进入语句 $wpdb->prepare( "SELECT ID FROM $wpdb->posts...0x05 Wordpress插件安全 其实Wordpress的插件安全一直都是Wordpress的安全体系中最最薄弱的一环,再加上Wordpress本身的超级管理员信任问题,可以说90%的Wordpress...https://paper.seebug.org/140/ 事实上,在wordpress插件目录中,wordpress本身并没有做任何的处理,当你的用户权限为超级管理员时,wordpress默认你可以对自己的网站负责
二、准备工作:两步搞定 “基础配置”要在 WordPress 里用 ECharts 做评论统计,得先做好两件事:引入 ECharts 库,再获取 WordPress 的评论数据。1....我们用 CDN 链接直接引入,不用下载本地文件,省空间又方便,把这段代码放在 WordPress 主题的合适位置(比如 header.php 或需要展示图表的页面模板里):WordPress 函数获取评论数据要做评论统计图,得先从 WordPress 数据库里把评论数据 “捞” 出来。...->comments LEFT OUTER JOIN $wpdb->posts ON ( $wpdb->posts.ID = $wpdb->comments.comment_post_ID...->get_results($query_day); $output_month = $wpdb->get_results($query_month); $output_user = $wpdb
MO文件的缓存机制 非英文的WordPress在运行时,对于每个页面都会调用加载.mo文件,在翻译子系统上耗费大量计算性能,此处可以使用Speed Up - Translation Cache这个插件,...将.mo文件作为Object Cache,在本站上测试可以提高30%的页面生成速度。...$clauses['distinct'] : ''; //使用 EXPLAIN 方式重构 $wp_query->found_posts = (int)$wpdb->get_row...由此带来的反面结果就是,大量的apply_filters函数拖慢了页面加载时间。...安全加固 保持你的WordPress为较新版本 做好服务器防火墙、权限管理等安全策略 使用2FA及验证码等方式防止爆破登录 Hide My WP 等隐藏插件 安全加固插件,定期扫描目录 禁止wp-content
上一篇文章介绍了WordPress后台的常用样式,这次给大家分享的是利用WordPress开发一个插件界面 效果图如下 功能和界面都比较简单,但体现了一套完整的插件页面开发流程!...) 2.菜单名称 3.浏览该菜单的权限(manage_options表示管理员) 4.菜单别名 5.菜单显示的页面 调用哪个方法来显示 6.菜单图标(图标url) 我们也可以使用 add_submenu_page...= "{$wpdb->prefix}test"){ $sql = "create table if not exists `{$wpdb->prefix}test`( id...->query($sql); } } 上面代码在插件被启用时会为我们创建一个wp_test表,有关该插件的数据都存放在这个表中 接下来我们向数据库利用客户端工具向数据库写入假数据(略)...empty($_POST) && check_admin_referer('test_once')){ //更新设置 $wpdb->update("{$wpdb->prefix
自由度最高的是基于wordpress的外贸独立站,独立站建好以后需要对接收款通道。easylink是中国香港的支付通道。下面分享对接过程。...= $wpdb->get_results("SELECT order_id,order_state,mref FROM {$wpdb->prefix}easylink_data WHERE sref...$query = "update {$wpdb->prefix}easylink_data set order_state='C' where sref='".addslashes($sref)..."'"; $wpdb->query($query); $inv_id...的后台页面上传然后激活即可,设置也非常简单。
前言 前一段时间,分享了如何使用wordpress快速搭建一个电商独立站。没有对接支付系统,其实像主流的如支付宝,或者微信有成熟的插件可用。但一些小的三方支付通道,只有接口文档。...$result['Msg'] . ")"); } $query = "insert into {$wpdb->prefix..."',$amountcents,'978','I', now())"; $wpdb->query($query); return...['Status'] == '1') { $query = "update {$wpdb->prefix}superxpay_data set..."'"; $wpdb->query($query);
WordPress评论统计图 在网络上经常会见到各种博客网站评论留言墙,但统计图表却比较少见。前段时间无意在网友“牧羊人”那里见到这个,发现非常酷,于是弄过来用上了。...->comments LEFT OUTER JOIN $wpdb->posts ON ( $wpdb->posts.ID = $wpdb->comments.comment_post_ID...->get_results($query_day); $output_month = $wpdb->get_results($query_month); $output_user =...$wpdb->get_results($query_user); 饼图 html ...,初步怀疑可能是变量冲突,有时间再研究,于是先放入归档页面。
,修改一次生成一个修订版,对应一个修订版文章id,即使删除修订版本,原占用的ID也无法回收了; 2、附件、菜单、页面占用ID WordPress的附件、导航菜单项和页面都是比较特殊的post,而且都会占用一个...WordPress文章ID不连续的解决办法: 了解了WordPress文章id不连续的原因以后,我们自然就明白由于附件、导航菜单和页面占用ID,理论上是没有绝对的方法可以让文章ID连续的,但是不相差过大还是可能的...WordPress的页面内容同样会占用id,但这个也是没办法的事情,就不要纠结这个了。...->query("DELETE FROM `$wpdb->posts` WHERE `post_status` = 'auto-draft' OR `post_type` = 'revision'");...// 自增值小于现有最大ID,MySQL会自动设置正确的自增值 $wpdb->query("ALTER TABLE `$wpdb->posts` AUTO_INCREMENT = 1"); } 收藏
管理后台 – 媒体库中看到,不同媒体对应了不同的文章。...如果你特别追求文章的ID一定要完美无缺地连续,请不要在发布文章的时候上传/插入这些媒体,并请在WordPress管理后台 – 媒体库中,删除之前上传的媒体(注意这个操作不只是删除记录,而且会删除你上传的文件...wp_deregister_script(‘autosave’);” ) ); 五、重新排列不连续的文章ID 方法一:可在当前主题的functions.php中加入以下PHP代码,这样如果你只是单纯发文章,不发页面...,不添加菜单,不上传媒体的话,基本上此后的文章ID是连续的,而且不改变之前已经发布的文章ID,不影响SEO: // WordPress 3.8测试有效 function keep_id_continuous...(){ global $wpdb; // 删掉自动草稿和修订版 wpdb->query(“DELETE FROM ` // 自增值小于现有最大ID,MySQL会自动设置正确的自增值 wpdb->query
WordPress 酷炫 CSS3 读者墙这个玩意一般不用我多说,大部分用 WordPress 的博主都了解过了,出自折子戏博客。 不过他这个读者墙的排行是按年度划分的,也就是一年内的留言数排行。...FROM (SELECT * FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->posts.ID=$wpdb->comments.comment_post_ID...='1' AND comment_type='') AS tempcmt GROUP BY comment_author_email ORDER BY cnt DESC LIMIT 39";//大家把管理员的邮箱改成你的...,最后的这个39是选取多少个头像,大家可以按照自己的主题进行修改,来适合主题宽度 $wall = $wpdb->get_results($query); $maxNum = $wall[...你想啊,如果是写到 style.css 那每个页面都需要加载一次,而写到页面代码中就只会在留言板加载,从而就起到优化的微小效果!当然,最好的方式可以将 css 代码保存为 readers.css。
WordPress代码实现防止发表重复标题的文章,如果对你有帮助就看看吧。其实所有的插件这些的就等于放到function.php的代码片段。...function.php里面的插件集成出来也可以做成一个插件,反过来插件也可以集成到function.php里面,插件的好处就是方便管理,但也添加了静态的资源请求,所以就导致了,插件越多也会导致网站卡顿的情况...* Author: hasan movahed * Reviser: INLOJV * Version: 1.0 */// 发表文章页面,前端抓取标题并使用AJAX发送请求add_action( '...= {$post_id} " ; $wresults = $wpdb->get_results( $wtitles ) ; if ( $wresults ){ $wpdb-...$arr_params = array( 'message' => '10', 'wallfaerror' => '1' ) ; $location = add_query_arg