4

我正在创建我的第一个 wordpress 插件。在其中,用户可以选择添加新城市并查看这些城市的事件。

我的客户要求是 URL 必须是这样的

SITE_NAME/cities/NY

或者

SITE_NAME/cities/Califonia

决定的是我将创建一个文件夹城市,如果用户尝试创建一个新城市,我将在该文件夹中创建一个包含该城市的文件,此外,我还将将该条目添加到数据库中。我将插入 PHP 代码也进入文件。

是 WP 插件的新手。我的方法是否正确(用于创建文件)?还有其他方法吗?

4

5 回答 5

5

如果您不使用 Wordpress,您的方法会起作用,但我绝对不建议您在 Wordpress 框架中执行您的建议。

与其尝试重新发明轮子,不如使用现有的插件来实现您想要的一切。我绝对建议您走这条路,特别是如果您对 Wordpress 插件编程没有太多经验。

步骤1:

安装WordPress

不言自明。没有这个就什么都做不了。

第2步:

安装类型

安装Types Plugin将为您提供一个很好的界面,用于注册您自己的自定义帖子类型和许多其他用于扩展 Wordpress 核心功能的功能。

第 3 步:

注册您的自定义帖子类型

这就是事情开始变得复杂的地方。使用类型,注册一个名为事件的自定义帖子类型。您希望将每个事件都作为自己的帖子的原因是因为每个事件都是独一无二的。城市旨在封装和定义事件组,这将我们带到了下一步:

第4步:

注册您的自定义分类

将分类法​​视为对事物进行分类的一种方式。Wordpress 带有两个默认分类法:类别(分层)和标签(非分层)。在您的情况下,您需要为新的 Event Post Type 定义一个名为“Cities”的非分层分类法。

第 5 步:

注册您的自定义字段

自定义字段是简单的部分。什么定义了您的活动?也许某些字段定义了该特定事件的开始和结束时间?表示免费茶点的复选框?天空是极限。所有事件都具有哪些定义特征使其成为事件?以自定义字段的形式添加它们。这些将以元框的形式显示在您的事件编辑器上。如果您在编辑页面上没有看到特定事件的元框,请务必通过单击屏幕右上角的屏幕选项并勾选您的字段所在的复选框来启用它。

第 6 步:

配置您的永久链接

其中大部分可以通过类型本身(在配置自定义分类法时)或通过 .htaccess 重写,甚至可能通过 Wordpress 永久链接设置(尽管它相当有限)来完成。我的建议是在弄乱 .htaccess 之前先调整您的自定义分类法和永久链接设置。

就是这样!希望这足以让您开始所需的一切。

于 2013-01-03T06:03:55.413 回答
4

maiorano84 写了一个相当全面的指南来设置你需要的东西,而不是依赖插件,我更愿意向你展示如何编写一个插件来注册自定义帖子类型和分类。为此,我编写了一个小插件,它应该可以满足您的所有需求,并且它有大量的注释和文档链接,以便您了解事情的原因

代码

https://github.com/fyaconiello/WP_Cities_Events

这个插件做了几件事

  1. 创建自定义帖子类型事件
  2. 创建自定义分类城市
  3. 将自定义元框添加到事件
  4. 将城市分类添加到事件

这个插件不需要安装任何额外的插件,它是无依赖的,只使用 WP 核心。

网址

至于获得正确的URL Structure,我建议您仔细阅读:http ://codex.wordpress.org/Using_Permalinks 。

我不明白你想要的结构

CITY is a single term w/i the taxonomy *cities*
EVENT is the post single
  1. SITE_URL/cities/CITY将生成该CITY中所有EVENT帖子的页面
  2. 您需要一个网址,例如:SITE_URL/cities/CITY/EVENT阅读特定城市中的特定事件

编辑如何获取网址:

在您的Settings -> Permalinks管理面板中选择:“帖子名称”并保存。

截屏

然后,转到您的 CeEvents -> Cities管理屏幕。

截图 2

将鼠标悬停在您的一个条款上(在我的情况下是纽约市)并单击查看。

截图 3

它应该打开该术语(城市)的列表视图,并且 url 结构如下所示:http://wp.local/city/new-york-city/

如果您需要city阅读cities,请修改我与您共享的主插件文件的第 102 行:

'rewrite' => array('slug' => 'city'),

编辑 2

测试活动不属于城市,它是按城市分类的帖子

于 2013-01-07T15:55:42.107 回答
2

不要那样做。WordPress 为您提供了一个 goog API 来做您想做的事情:管理漂亮的 URL(slug)、数据库操作(您不需要为此编写/读取文件)以及用于注册和触发操作的正确代码工作流程。

因此,我认为您必须开始阅读有关WordPress 插件的基础知识(其理念和 API),然后再决定是要使用其自定义帖子类型(即用型)还是要创建特定的内容类型。

于 2013-01-05T12:41:22.750 回答
2

为什么不将 City 创建为自定义帖子类型?然后,您可以定义一个 slug 'cities' 并获得该结果,还可以添加类别和标签等分类法以进一步帮助导航。

于 2012-12-30T02:01:12.190 回答
0

是的,这是很好的方法。您可以做的另一件事是,不要在文件中添加代码。从数据库中选择代码。在数据库中创建一个表,创建一个以varchar为数据类型的列,并在其中插入公共代码。

于 2012-12-29T14:12:19.903 回答