0

これであなたの助けを得たいと思います。

私のISの状況: つまり、ユーザーに独自の製品を作成してもらいます。ネクタイ、シャツ、靴が入った衣装だとしましょう。私は彼らにこの衣装を保存することを許可します。私のスクリプトは、ワードプレスに接続されていないデータベースに衣装に関する写真といくつかの詳細情報を保存します。私のDBでは、各衣装に固有のIDがあります。名前もあります。

私の将来の状況: まず、その衣装の名前とIDをURLに入れたいと思います。
だから私はユーザーが彼の新しく作成された衣装にリンクできるようになります。
必要なURLスキーマは次のとおりです。

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

また :

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

次に、ワードプレスのページテンプレートまたはポストテンプレートを使用して、衣装の写真を表示したいと思います。

私の問題: -衣装ごとにページ/投稿を作成したくありません。
-各衣装は、ワードプレスデータベースにページまたは投稿として保存されません。

これまで に見つけたもの: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にoutfitを含むすべてのトラフィックを、手順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');

DBに接続して目的のエントリを取得するのは簡単ですよね。DBを入力するためのPHPコードは、コメントを開いた後、衣装ページのテンプレートに含まれます。

于 2013-01-26T22:16:20.867 に答える