首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自己动手写 WordPress 插件 4:使用 WP-Cron

何在 WordPress 中安排任务,这是在 WordPress 2.1 中就引入的功能。...本人针对这个功能翻译过一篇文章:如何在 WordPress 安排任务,建议大家在继续之前,好好阅读下那篇文章。...前面我们通过把沙发排名信息保存到数据库中,再有留言之后再进行更新,这样的操作来提高沙发插件的执行效率,今天来谈谈另外一种提高插件执行效率的方法,定时去更新沙发沙发的排名信息到数据库中来提高效率。...下面我们来讲解如何实现: 首先注释掉 sofa_comment_post 和 add_action('comment_post', 'sofa_comment_post');。...然后添加如下代码: //创建自定义的更新沙发排名信息的事件,调用更新沙发排名信息的函数add_action('update_sofa_event', 'update_sofa'); //定义任务,调用更新沙发排名信息的事件

39220
您找到你想要的搜索结果了吗?
是的
没有找到

WordPress 主题和插件的加载运行机制、Hook钩子与重要函数

简单的来说,两者的区别主要是下面这样的: Action 函数在被调用时,是可以直接调用的,自定义的函数无需提供返回值; Filters 函数在被调用时,会被传入一个具体的字符串,函数执行完成,还需要将这个字符串返回给系统...比如在开发过程中,可能会用到 get_header 这个函数,该函数在执行时,首先会调用 do_action,那么,在 get_header 上挂载的函数就会执行执行完成,再执行后面的函数。...add_action add_action 可以将我们自定义的函数加到特定的 Hook 上去,等待执行。一般来说,我们只需要执行如下命令即可。...如果这个 Hook 提供了调用的说明,可以直接根据上面的 add_action 的函数参数来判断这个 Hook 支持几个参数。...了解到参数,就可以使用这些参数,来执行一系列操作了。 虽然你可能查到了有三个参数,可以不使用三个参数,比如只使用前两个。

1.1K10

【Wordpress】ajax 实现站内搜索

比如调用最新文章、热门文章、自定义文章类型文章循环输出等。 在官方手册中也有介绍到:wp_query,支持多种 sql 语句的 比较符号: ? 看!...开始主循环 while ( $result->have_posts() ) : $result->the_post(); //获取到特定的文章 // 要输出的内容,标题...开始主循环    while ( $result->have_posts() ) :        $result->the_post(); //获取到特定的文章         // 要输出的内容,标题...);         global $post;        $post_title = get_the_title();        // mb_stripos 不区分大小 判断字符串中是否存在另一个字符串...( 'wp_ajax_nopriv_search', 'search' );add_action( 'wp_ajax_search', 'search' ); 调用方式: 示例:https://zhaoshuai.me

1.2K10

Genesis框架从入门到精通(4):框架的内置动作(续)

你要自己写一个函数,并使用add_action()把它挂载到某一个钩子上。 (请记住,add_action(), remove_action() 实际上只是指明了代码要在什么位置执行)。...“generic”是函数名,这样你就可以用这个名字来调用代码并执行,而不是每次都要写同样的一大啪啦的代码。当然,这个例子中没那么多代码,也不会节省太多打字量,但在实际开发中它可能会有很多代码。...需要在标题之前执行代码吗? add_action( 'genesis_before_header', 'generic' ); 关于怎么使用其他钩子和动作来调整位置,可以看之前的两篇文章。...') ) add_action( 'genesis_after_post_content', 'ADDTOANY_SHARE_SAVE_KIT' ); 如何调用Genesis函数 “调用函数...就像你可以在钩子中使用另一个函数一样,你可以在也不使用钩子的情况下调用Genesis函数。 一个很好的用法就是在自定义 home.php 文件中。

62620

WordPress 通过模板文件和自带的函数引入 cssjs 的两种方法

> 但是 WordPress 不能确定是否在在页面加载了 JS,Css 文件,如果另一个插件使用相同的 JS,Css 文件,就无法检查 JS,Css 文件是否已经被包含在页面中。...您可以使用函数, get_template_directory_uri() 来获取主题目录中的样式文件。永远不要去想硬编码了! $deps (数组,可选)处理相关样式的名称。...my_init' ); 注册脚本时需要运行 $wp_scripts->add( $handle, $src, $deps, $ver );,若脚本没有注册直接使用 wp_enqueue_script,需要先调用...问题来了:这部分内容显然是在 wp_footer 之前出现的,那么这段代码就在 jquery.js 文件之前出现了,导致该代码段实际上无法工作,因为调用 jQuery 方法的代码段必须比 jquery.js...文件加载。

1.6K30

Genesis框架从入门到精通(3):框架的内置动作

archive.php :包含操作归档页面的动作,归档页面的标题输出 comments.php :包含操作评论的动作,评论的提交表单 footer.php :用于页脚的动作,包括页脚上的widget...控制菜单的输出 post.php :基本上这是在循环内加载的所有东西 search.php :用于搜索页面的动作 sidebar.php :用于创建用于侧边栏的钩子和动作(仅在被layout.php文件调用了的情况下执行...你要做的就是找到需要被删除的动作,将其复制到子主题functions.php文件中,然后将把”add_action()”更改为“remove_action()”。...过滤器会在另一个教程里讲,所以我们暂时忽略它。要移除或移动一个动作,可以不用依赖于函数,所以我们可以忽略上面的函数。我们所需要的只是一行。...代码就在文件的顶部 add_action('genesis_loop', 'genesis_do_loop'); 很简单。这会加载一个函数来决定使用哪个循环,我们先绕过。

90830

WordPress的可拓展性初探(二)

每一个钩子方法都有特定的名称以及定义,例如 save_post ,表示当一篇文章被保存时需要执行的代码,WordPress在调用这个方法时,会给我们传入被保存的文章ID。...', 10, 1); add_action 是由WordPress定义的函数。...这样上述代码就会被执行,我们的插件就利用 add_action 函数的调用,把发送邮件的功能注册在了 save_post 这个钩子方法上。...到了保存文章的时候,WordPress会调用 save_post 这个钩子方法——它首先查找钩子方法的注册列表,找出有哪些函数注册在了 save_post 上,然后根据优先级顺序依次调用执行。...然而有利必有弊,这样做的代码执行速度肯定是没有直接调用函数来得快。不过对于WordPress这样的强调高可扩展性的工程,使用这样的技巧显然是利大于弊的。

741120

Wordpress按评论时间给文章排序

我们都知道wordpress文章发布都是按照发布时间进行排位,最新发布的在最前面。但是有的网友使用wp作为论坛,就需要新的排序方式。比如按最新评论排序。...(注意:执行完代码立刻删除,否则会一直执行add_action('init', 'update_all_templates_to_new'); function update_all_templates_to_new...(){ $args = add_action('init', 'update_all_templates_to_new'); function update_all_templates_to_new...(){ $args = 2.使用sql语句 将下列SQL语句添加到phpmyadmin面板中SQL输入框中并执行2.使用sql语句将下列SQL语句添加到phpmyadmin面板中SQL输入框中并执行...', 'ludou_comment_meta_add');add_action('delete_post', 'ludou_comment_meta_delete');add_action('comment_post

68230

WordPress网站尝试优化提升速度详细教程(前端+后台)WordPress教程

我们需要根据自己的条件进行一些配置,这可以让以后的站点运行更稳定 前期准备 安装宝塔Linux面板,安装Linux工具箱,安装LNMP或LAMP环境 添加计划任务,定期释放内存,建议设置每天释放一次,执行时机为半夜...,:3:30 打开Linux工具箱添加Swap Swap推荐值: 物理内存 Swap 512M 1024M 1GB 1500M 2GB 2048M 4GB 4096M 6GB+ 4096M 安装PHP...宝塔官方运维团队 亮哥的文章,点我查看原贴 【可选】wordpress 环境设置 在宝塔上的wordpress的站点设置中设置,访问限制,添加”wp-content/uploads”目录,设置为禁止执行...; } add_action('do_feed', 'wpjam_feed_disabled', 1); add_action('do_feed_rdf', 'wpjam_feed_disabled...', 1); add_action('do_feed_rss', 'wpjam_feed_disabled', 1); add_action('do_feed_rss2', 'wpjam_feed_disabled

76610

如何构建智能反垃圾邮件的WordPress插件

完成注册,到您的API证书区域复制您的API密钥并将其粘贴到上述配置页面中。 构建机器学习反垃圾邮件插件 第一步,创建一个名为“机器学习反垃圾邮件”的文件夹。...为了能够轻松地调用Datumbox API,我们下载了PHP Datumbox API客户端,并在之前的文件夹中复制了DatumboxAPI.php文件。...function_exists('add_action')) { die(); } add_action('admin_menu', 'machinelearningantispam_admin_menu...该函数检查选项并调用DatumboxAPI服务,以验证评论是否为垃圾邮件、成人邮件还是负面邮件。...第一个函数使用Datumbox PHP API客户端来调用API函数。第二个函数用来检查插件是否被配置为阻止垃圾邮件、成人和负面评论的状态,如果启用这项功能则调用API。

1.2K90

CVE-2022-21661:通过 WORDPRESS SQL 注入暴露数据库信息

WP_Query对象用于对 WordPress 数据库执行自定义查询。插件和主题使用此对象来创建他们的自定义帖子显示。  当插件使用易受攻击的类时,就会出现该漏洞。...( 'wp_footer',[$this,'get_document_data'],99);// debug line comment it add_action( 'wp_ajax_ecsload'...接下来,它调用get_sql方法,该方法最终调用get_sql_for_clause从用户提供的数据创建 SQL 语句的子句。...后来在get_posts方法中,这个查询是通过$wpdb->get_col()方法执行的,这里出现了SQL注入条件。...虽然这是信息泄露而不是代码执行的问题,但暴露的数据可能对攻击者很有价值。在不久的将来,在主动攻击中看到这个错误并不会让我们感到惊讶。我们建议尽快应用补丁或采取其他补救措施。

3.9K10
领券