【问题标题】:What to keep in mind when making Wordpress themes制作 Wordpress 主题时要记住什么
【发布时间】:2010-12-24 05:33:59
【问题描述】:

我已经制作 Wordpress 主题一两年了,并且在尝试使我的主题与它们的设置、插件等尽可能兼容和灵活时,我需要牢记一些事情。

是否有一个资源可以保存所有“不要忘记”Wordpress 主题的清单?在构建 Wordpress 主题时,您会尝试记住哪些事项?

例子:

  • 检查作者/管理员是否为特定帖子禁用了 cmets。
  • 记得在<head>标签末尾调用wp_head()
  • 记得在<body>标签末尾调用wp_footer()
  • 使用bloginfo() 变量而不是为字符集、html 类型、描述等设置静态值,以便管理员可以在站点设置中修改这些内容。
  • 在从插件调用函数之前使用function_exists(),以便在未安装该插件时正常失败。

【问题讨论】:

    标签: php html wordpress themes wordpress-theming


    【解决方案1】:

    Wordpress 文档有一个有趣的主题,正好解决了您的问题:它被称为Designing Themes For Public Release。还有Theme Development General GuidelinesTemplates 的文章也很精彩。

    我不知道其他官方资源,但是在这三个指南中添加更多信息会很有趣。我对我们可能在您的问题中提供的一些其他答案感兴趣,以补充它们。

    我已经习惯了 Wordpress,以至于您编写的示例在我开发时会自动流动,因为在任何 Web 开发中使用输出域信息(例如bloginfo())而不是静态值的函数都是一个好习惯。

    【讨论】:

    • 我很感兴趣,也希望能得到更多的回应,但您指出的资源与我认为我们会得到的一样好。我正在考虑将其贡献给社区 wiki,但不确定这是否合适。
    • 我们这里有很多“最佳实践”主题,真的很合适。事实上,我们的知名度不如我们不时收到的 C# 问题那么多。在每个 wordpress 项目之前阅读“清单”(也许是 Excel)是个好主意。如果你有一个编程博客,那将是一个有趣的主题。
    【解决方案2】:

    主题开发清单更多地取决于主题的目标受众。如果它超出了基本博客的范围并转向 WordPress-as-CMS 领域,那么您需要研究:

    • 自定义小部件和动态侧边栏,使功能更加便携和灵活
    • 支持自定义字段,或以全新方式实现前者的 MagicFields 等插件
    • 为网站的不同级别路由和创建自定义模板(例如:子类别由 category-x.php 处理)
    • 使用 css 框架,因此修改样式的人有更高的机会更好地理解它;确保包括即支持
    • 具有自己的菜单、页面等的自定义 wp-admin 部分;如果您的主题具有可由用户进一步自定义的自定义功能,则这一点尤其必要
    • 使用 wp_scripts 和 wp_styles 类和函数来添加样式和脚本;这对于 javascript 尤其重要,因为它可以防止重复包含并使用依赖脚本(在 jQ 脚本之前加载 jQuery)
    • 确保主题的设计不会像 WordPress 的其他所有内容一样无聊
    • 写一个主题类;除非您打算支持 PHP4,否则请使用 PHP5 类和对象来使您的生活更轻松,在功能继承和无命名冲突方面。查看 CodeIgniter 及其单例模式;它使模板文件中的自定义全局变量更易于管理
    • 如果您(并且应该)使您的主题更高级并且更像一个插件,那么知道如何使用 WP_Cache 和 WP_Rewrite 对象,以便您使用 $wpdb 进行自定义查询(是的,您需要偶尔执行这些操作以获得某些自定义功能)成本更低,并且您的新页面(如果您正在重写 url)正确路由并且您的链接分别正确地动态生成。
    • 最后也是最重要的一点,尽最大努力将演示文稿 (html) 与逻辑 (php) 分开;当您开始运行自定义 WP 循环时,这会变得很困难,一个好的解决方案是前面提到的主题类。

    【讨论】:

      【解决方案3】:

      我们公司还开发了很多不同的 WordPress 和 WordPress MU 主题,我们还没有找到任何“官方”资源,但我们所做的一件事是创建了一套基本的模板文件,可以用作“标准”设置,以加快我们的开发过程。

      然后,每当需要开发新主题时,我们基本上会将这组默认模板文件复制/粘贴到安装 WordPress 的新主题文件夹中。对我们来说,我们在此默认设置中包含的项目是预先填充的 header.php、footer.php、index.php、home.php、single.php、functions.php、cmets.php、/images (dir)、 /functions (dir)、style.css、/css (dir)、/scripts (dir) 和一些其他项目。

      然后我们还使用了 Yahoo Grids 或 Google Blueprint css 框架作品来加速 css 工作。还有一些其他项目/文件我将省略,但应该让您大致了解在我们的商店中什么最适合我们。

      【讨论】:

        猜你喜欢
        • 2018-05-30
        • 2011-10-20
        • 2011-07-15
        • 1970-01-01
        • 2011-02-04
        • 1970-01-01
        • 1970-01-01
        • 2015-10-26
        • 1970-01-01
        相关资源
        最近更新 更多