我正在寻找与Wordpress合作的一些指导。我公司最近决定转而使用Wordpress作为我们的主要开发平台。我习惯做OOP,我看到Wordpress支持它很棒。我确实有几个问题,我希望一些经验丰富的Wordpress开发人员可以回答。
1.)我们有设计师喜欢修改来自插件的元素的布局。从插件更新角度处理此问题的最佳方法是什么,以便在将来的更新中不会覆盖更改?我们可能会制作大部分自己的插件,并在可用时使用自定义内容类型。
2.)从客户的角度来看,处理自定义内容网址的最佳方式是什么(例如,常见问题插件,以便设计师可以处理布局,客户可以轻松输入)。我最初的想法是创建一个cutom post类型并通过它制作slug。但是,这样做的缺点是它们无法在页面部分更改URL并在调用插件内容之前添加任何自定义内容。我的第二个想法是只使用短代码,但客户可能会意外删除它。还有另一种方法,我错过了或更好的方式?
如果有人有任何其他提示/建议,请随时离开。此外,任何与使用Wordpress的优秀文章/资源的链接都表示赞赏。
答案 0 :(得分:2)
一些一般提示:
始终使用Codex。 Wordpress确实有很好的文档。
Wordpress它非常程序化,但没有人可以阻止你使用OOP。我真的建议你使用自动加载器。在你的wp-config中,你用这种方式注册自动加载器:
define('LIB_PATH',realpath(dirname( FILE ))。'/ wp-content / themes / yourtheme / lib');
需要LIB_PATH。 '/MainFolder/Autoloader.php';
spl_autoload_register( 'MainFolder_Autoloader ::自动加载');
在主题中创建一个“lib”文件夹,在lib目录中创建一个“MainFolder”。然后在您的MainFolder中,创建Autoloader.php文件,该文件包含以下内容:
class Autoloader
{
/**
* Namespace.
*/
protected static $namespaces = array(
'MainFolder'
);
/**
* @param string $className
* @return string|false
*/
public static function autoload($className)
{
if (($classPath = self::getClassPath($className)) !== false) {
return include $classPath;
} else {
return false;
}
}
/**
* @param string $className
* @return string|false
*/
private static function getClassPath($className)
{
$parts = explode("_", $className);
foreach (self::$namespaces as $ns) {
if (count($parts) && $parts[0] == $ns) {
$path = LIB_PATH . DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, $parts) . '.php';
if (is_readable($path)) {
return $path;
}
}
}
return false;
}
}
现在,在您的“Mainfolder”中,您可以放置所有类,并在主题文件中访问它们:例如,如果您有Upload.php,则可以使用Mainfolder_Upload访问它。你可以在课堂上放置你需要的所有公共抽象函数。
使用自定义帖子类型。我建议你Custom post type Ui plugin。它可以帮助您完成大量工作。
在前面使用ajax时,请使用admin-ajax.php文件。更多信息here。
当您需要添加一些js脚本时,请使用wp enque script。
了解hooks。
也许您的客户需要wp-admin中的一些菜单。在wp-admin区域中学习how to add administration menus。
当您与数据库接口时,请使用全局$wpdb。
我不建议编辑外部插件文件。在更新时,他们会删除您的修改。
玩得开心:) Wordpress真的很有用,你可以在google上找到所有的信息:)