0

很想得到你的帮助。

我的 IS 情况: 所以我让我的用户创建他们自己的产品。可以说它是一套包含领带、衬衫和鞋子的服装。我允许他们保存这件衣服。我的脚本将图片和有关服装的更多信息保存在未连接到 wordpress 的数据库中。在我的数据库中,每件衣服都有自己唯一的 ID。它也有一个名字。

我的未来情况: 首先,我希望将那套服装的姓名和 ID 放入 URL 中。
所以我的用户将能够链接到他新创建的装备。
所需的 URL 架构是:

http://www.mydomain.com/outfits/funky-shirt-blue-tie-outfit/o12345  

或者 :

http://www.mydomain.com/outfits/{%outfitTitle%}/o{%outfitID%}  

其次,我想使用 wordpress 页面或帖子模板来显示服装图片。

我的问题: - 我不想为每件衣服创建一个页面/帖子。
- 每件服装都不会作为页面或帖子存储在 wordpress 数据库中。

到目前为止我发现了什么: 我找到了一个 mod 重写工具http://www.generateit.net/mod-rewrite/
我阅读了那些文档http://codex.wordpress.org/Function_Reference/register_post_type
http://codex .wordpress.org/Template_Hierarchy但无处可去。

有谁能帮助我吗?

4

1 回答 1

1

您将不得不处理自定义重写规则和自定义 query_vars。否则很简单。

首先,创建自定义页面模板。创建 php 文件很简单,其中至少包含以下代码:

<?php /* Template Name: Outfit */ ?>

您可以在 WP 管理员中创建一个页面并将其分配给您的新页面模板。记下此页面 ID。你以后会需要它的!

现在,让我们注册自定义重写规则。要注册自定义重写规则,您必须将此代码添加到您的 functions.php

add_action( 'generate_rewrite_rules', 'outfit_rewrite_rules' );
function outfit_rewrite_rules( $wp_rewrite )
{
    $outfit_page_id = 3; //get ID of your page with custom template for displaying outfit
    $wp_rewrite->rules = array(
        'outfit/?([a-zA-Z0-9]{1,})/?([0-9]{1,})/?$' => $wp_rewrite->index . '?page_id='. $outfit_page_id .'&outfit_ename=' . $wp_rewrite->preg_index( 1 ) . '&outfit_id=' . $wp_rewrite->preg_index( 2 ),
    ) + $wp_rewrite->rules;
}

此代码将使用自定义页面模板将 URL 中包含服装的所有流量重写到您在步骤 1 中创建的自定义页面,并将在 -URL 中包含“outfit_name”和“outfit_id”。但是要访问这些变量,您必须注册自定义查询变量。通过这段代码,再次在模板的 functions.php 中

add_filter( 'query_vars', 'outfit_query_vars' );
function outfit_query_vars( $vars ) {
    $vars[] = 'outfit_name';
    $vars[] = 'outfit_id';
    return $vars;
}

然后,您将能够通过以下代码在自定义页面模板中访问它们:

$outfit_id = get_query_var('outfit_id');
$outfit_name = get_query_var('outfit_name');

连接到您的数据库并获得所需的条目很容易,不是吗?您输入数据库的 PHP 代码将在您的装备页面模板中 - 打开评论后。

于 2013-01-26T22:16:20.867 回答