Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 重写Wordpress核心函数\u wp\u mysql\u week()_Php_Mysql_Wordpress_Function_Overriding - Fatal编程技术网

Php 重写Wordpress核心函数\u wp\u mysql\u week()

Php 重写Wordpress核心函数\u wp\u mysql\u week(),php,mysql,wordpress,function,overriding,Php,Mysql,Wordpress,Function,Overriding,我想重写位于wp includes/functions.php中的\u wp\u mysql\u week()wordpress函数,因为实际的\u wp\u mysql\u week()不符合ISO 8601,并要求模式1使用week()mysql函数,而不是模式3 我想在theme functions.php中放置一个过滤器或其他东西,但找不到如何放置 Thx对于WP 4.1中设置此函数的任何帮助,如果您在选项表中指定“星期一”为一周的第一天,您将获得ISO8601:1988周数(MySQL

我想重写位于
wp includes/functions.php
中的
\u wp\u mysql\u week()
wordpress函数,因为实际的
\u wp\u mysql\u week()
不符合ISO 8601,并要求模式1使用
week()
mysql函数,而不是模式3

我想在theme functions.php中放置一个过滤器或其他东西,但找不到如何放置


Thx对于WP 4.1中设置此函数的任何帮助,如果您在选项表中指定“星期一”为一周的第一天,您将获得ISO8601:1988周数(MySQL模式1)。否则,您将获得模式0

您还可以在构造查询之后但在将其传递给MySQL之前使用过滤器进行干预。在过滤器中,您可以随意更改查询的文本

WEEK( something, 0 )

以了解您的ISO 8601:1988行为。这解释了查询过滤

请注意,_wp_mysql_week函数使用空格生成输出,我在这里显示了磅符号

WEEK(#something,#1#)
如果一周从星期日或星期一以外的某一天开始,则生成的查询代码如下所示:

WEEK(#DATE_SUB(#something,#INTERVAL#3#DAY#),#0#)
因此,您可能可以在过滤器中使用正则表达式来搜索

WEEK( .+? 0 )
然后将数字改为1。但是正则表达式当然有危险

您还可以请求在_wp_mysql_week的输出中专门添加一个新的过滤器,以便允许用户代码控制它。WordPress团队通常会接受这样的请求

WEEK( .+? 0 )