我正在尝试使用他们的Wordpress网站帮助小型企业,但我无法弄清楚他们的网站为何会产生此错误。以下是详细信息:
错误是这样的:第278行 /home/sojour15/public_html/wp-includes/post-template.php 中的未定义偏移:-1
这里是post-template.php的代码 - 从第275行开始 - 第278行是“$ content = $ pages [$ page - 1];”
if ( $page > count( $pages ) ) // if the requested page doesn't exist
$page = count( $pages ); // give them the highest numbered page that DOES exist
$content = $pages[$page - 1];
if ( preg_match( '/<!--more(.*?)?-->/', $content, $matches ) ) {
$content = explode( $matches[0], $content, 2 );
if ( ! empty( $matches[1] ) && ! empty( $more_link_text ) )
$more_link_text = strip_tags( wp_kses_no_null( trim( $matches[1] ) ) );
$has_teaser = true;
} else {
$content = array( $content );
}
我已经阅读了一些关于未定义的偏移错误的内容,并且明白这意味着代码指的是数组中不存在的内容,但我不是PHP编码器 - 只是有人试图帮助小型企业 - 而我我不知道如何解决这个问题。我尝试了一个黑客,我找到了某个地方 - 只是在第278行前面放了一个'@'。很奇怪,这个黑客工作了大约一个星期。现在它不再起作用了 - 无论如何正确修复代码会更好。任何指导都会非常受欢迎。谢谢。这里也是指向其中一个页面的链接:https://www.sojournacupuncture.com/treatments-and-services/
答案 0 :(得分:0)
$page
可能为0.因此,数组中的$pages[0-1]
,-1索引不存在。
您可以检查$page
是否为空或0,然后它不应执行其余代码。希望这对你有用。
if ( $page > count( $pages ) ) // if the requested page doesn't exist
$page = count( $pages ); // give them the highest numbered page that DOES exist
// A check on $page
// If it is not empty, then it should execute the rest
if (!empty($page)) {
$content = $pages[$page - 1];
if ( preg_match( '/<!--more(.*?)?-->/', $content, $matches ) ) {
$content = explode( $matches[0], $content, 2 );
if ( ! empty( $matches[1] ) && ! empty( $more_link_text ) )
$more_link_text = strip_tags( wp_kses_no_null( trim( $matches[1] ) ) );
$has_teaser = true;
} else {
$content = array( $content );
}
}
答案 1 :(得分:0)
试试这段代码。
if ( $page > count( $pages ) ) // if the requested page doesn't exist
$page = count( $pages ); // give them the highest numbered page that DOES exist
$content = ctype_digit($page) && $page > 1 ? $pages[$page - 1] : $pages[0];
if ( preg_match( '/<!--more(.*?)?-->/', $content, $matches ) ) {
$content = explode( $matches[0], $content, 2 );
if ( ! empty( $matches[1] ) && ! empty( $more_link_text ) )
$more_link_text = strip_tags( wp_kses_no_null( trim( $matches[1] ) ) );
$has_teaser = true;
} else {
$content = array( $content );
}
如果不合适且您的网站工作正常,那么您可以按照下面链接中的说明隐藏警告和通知