WordPress新手复制代码时常见的3个错误

分享本文:
mistake

复制一些有趣或实用的代码片段,扩展WordPress的功能,这对于WordPress用户并不陌生。这样的操作对于了解PHP语言的用户来说很简单;然而,对于那些不了解PHP的用户来说却有点难度。在这篇文章里,WPChina向你介绍一下WP新手复制代码是常犯的一些错误。

WordPress新手在复制代码的时候,经常会把这些修改放在主题目录中的 funcitons.php 文件里,或者放在一个网站专用的插件中。主题的 functions.php 文件位于 /wp-content/themes/zhutimingcheng 文件夹内,zhutimingcheng 是你所用主题名称的拼音,代表你所使用主题的目录。

要理解你所复制的代码并进行正确地复制粘贴,你需要了解PHP的基本语法。

//PHP代码的开始标记
<?php

//PHP代码的结束标记
?>

你要牢记这段代码,因为很多使用WordPress专业主机的新手遭遇的错误,都是这种简单的问题导致的。由于代码放错了位置,导致程序逻辑出现混乱。因此,了解PHP语法会很有帮助的。下面,我们来给大家介绍一下新手常见的三种错误。

第1类常见错误

用户在网上发现一段有用的代码,包括在PHP的开始和结束标记内,在复制粘贴的时候放错了位置。代码是这样的:

<?php
add_filter( 'login_headerurl', 'custom_loginlogo_url' );
function custom_loginlogo_url($url) {
    return 'https://wpchina.org';
}
?>

这是自定义WordPress后台登陆页面Logo网址的一段代码,我们在15个WordPress实用技巧一文中介绍过,也可以通过插件来实现。不过这不是本文的重点。

用户复制代码之后,可能变成了这样:

<?php
//在funcitons.php文件中,可能还有很多别的代码

//用户在复制粘贴代码片段的时候,放在了这里:
<?php
add_filter( 'login_headerurl', 'custom_loginlogo_url' );
function custom_loginlogo_url($url) {
    return 'https://wpchina.org';
}
?>
?>

这样,WordPress会立即提示错误,因为PHP的开始标记和结束标记不能嵌套,必须正确地使用开始标记和结束标记。对于这个错误,有两种解决办法。办法一,先结束上一段PHP代码,然后再开始新的PHP代码:

<?php
//在funcitons.php文件中,可能还有很多别的代码
?>
//用户在复制粘贴代码片段的时候,放在了这里:
<?php
add_filter( 'login_headerurl', 'custom_loginlogo_url' );
function custom_loginlogo_url($url) {
    return 'https://wpchina.org';
}
?>

第二个办法是,复制粘贴代码的时候,删除其对应的PHP开始标记和结束标记:

<?php
//在funcitons.php文件中,可能还有很多别的代码

//用户在复制粘贴代码片段的时候,放在了这里:
add_filter( 'login_headerurl', 'custom_loginlogo_url' );
function custom_loginlogo_url($url) {
    return 'https://wpchina.org';
}
?>

第2类常见错误

不同的教程写作者,有不同的写作风格。有的作者喜欢将代码放在PHP开始和结束标记内,如同上面的例子。而有的作者,写代码的时候喜欢省略掉PHP的开始和结束标记。这又引发了第二类问题。

比如说你看到了这样的代码片段,这段代码用来修改WordPress后台登录页面中Logo图片:

function custom_loginlogo() {
echo '<style type="text/css">
h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; }
</style>';
}
add_action('login_head', 'custom_loginlogo');

这里作者假设你知道PHP代码应该放在PHP开始和结束标签内。有些作者甚至会直接建议你,放在主题 funcitons.php 文件的最底部。于是,有些用户就这样了:

<?php
//这里可能还有许多其他的代码片段
?>

//用户将代码粘贴在这里(注意,PHP结束标签已经在上面关闭了):
function custom_loginlogo() {
echo '<style type="text/css">
h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; }
</style>';
}
add_action('login_head', 'custom_loginlogo');

在这里,用户将代码放在了PHP结束标签的外面。WordPress无法理解这样的代码,因此也会发生错误。正确的写法是这样的:

<?php
//这里可能还有许多其他的代码片段  

//用户将代码粘贴在这里(注意,PHP结束标签已经在上面关闭了):
function custom_loginlogo() {
echo '<style type="text/css">
h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; }
</style>';
}
add_action('login_head', 'custom_loginlogo');
?>

第3类常见错误

上面两类问题,都是由于没有正确使用PHP开始和结束标记而引起的。下面我们要介绍的最后一种常见错误,是用户复制粘贴的代码放在了其他的函数之内。

函数结构通常是这样的:

function custom_function_name() { // 函数开始

// 函数的具体代码

} // 函数结束

如果你将另外一个函数的代码插入到这个函数中,那么网站就会出现错误。错误的代码就像下面这样:

function custom_function_name() { // 函数开始

// 函数的具体代码

function custom_loginlogo() {
echo '<style type="text/css">
h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; }
</style>';
}
add_action('login_head', 'custom_loginlogo');

} // 函数结束

这样做是错误的。每个函数都是独立的,你不能将两个函数混在一起。复制粘贴代码的正确方式是这样的:

function custom_function_name() { // 函数开始

// 函数的具体代码

} // 函数结束

function custom_loginlogo() {
echo '<style type="text/css">
h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login_logo.png) !important; }
</style>';
}

add_action('login_head', 'custom_loginlogo');

以上三类错误,是WordPress新手在复制代码到funcitons.php文件中,经常遇到的三类错误。

其他技巧

WordPress新手遇到的之类错误,很多时候都是由于复制粘贴代码出错造成的。有些时候使一些无心之错,比如教程作者写代码的时候忘记了在语句结尾加上;符号,或者忘记了关闭某个标签。还有一些错误是代码本身存在错误,或者用户没有按照步骤进行操作。

还有一种严重的错误。有些教程的作者在写作的时候,需要用到某个插件所提供的函数,但是在教程的代码片段中,不测试函数是否存在,直接调用函数。用户在使用这样的代码时,必须安装并激活所需插件,代码才能工作;否则将会出现错误。

你在使用WordPress的过程中,都遇到过那些错误呢?你是怎么处理所遇到的错误呢?你是否还遇到过其他的一些错误呢?如果你愿意和我们一起分享,欢迎你通过下面的评论留言,跟我们进行交流。

分享本文:


发表一下评论

邮箱地址不会被公开。 必填项已用*标注