4

私は最初のワードプレスプラグインを作成しています。その中で、ユーザーは新しい都市を追加し、それらの都市のイベントを表示するオプションがあります。

私のクライアントの要件は、URLが次のようでなければならないということです

SITE_NAME/cities/NY

また

SITE_NAME/cities/Califonia

決定されたのは、citysフォルダーを作成し、ユーザーが新しい都市を作成しようとすると、その都市のフォルダーにファイルを作成し、さらにデータベースにエントリを追加することです。PHPコードを挿入します。ファイルにも。

WPプラグインを初めて使用する。私のアプローチは(ファイルを作成するために)正しいですか?他に方法はありますか?

4

5 に答える 5

5

Wordpressを使用していなければ、あなたのアプローチは機能しますが、Wordpressフレームワーク内で提案していることを実行することは絶対にお勧めしません。

車輪の再発明を試みるのではなく、既存のプラグインを使用して、必要なほぼすべてを実現できます。特にWordpressプラグインのプログラミングの経験があまりない場合は、このルートを取ることを強くお勧めします。

ステップ1:

Wordpressをインストールする

自明。これなしでは何もできません。

ステップ2:

インストールタイプ

タイププラグインを インストールすると、独自のカスタム投稿タイプを登録するための優れたインターフェイスや、Wordpressのコア機能を拡張するための他の多くの機能が提供されます。

ステップ3:

カスタム投稿タイプを登録する

これは物事が複雑になり始めるところです。タイプを使用して、イベントと呼ばれるカスタム投稿タイプを登録します。各イベントを独自の投稿として使用する理由は、各イベントが一意であるためです。都市は、イベントのグループをカプセル化して定義することを目的としています。これにより、次のステップに進みます。

ステップ4:

カスタム分類法を登録する

分類法は、物事を分類する方法と考えてください。Wordpressには、カテゴリ(階層)とタグ(非階層)の2つのデフォルトの分類法が付属しています。あなたの場合、新しいイベント投稿タイプに対して、「都市」と呼ばれる非階層的な分類法を定義する必要があります。

ステップ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

正しいURL構造を取得する限り、これをよくお読みになることをお勧めします: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その都市のすべてのEVENT投稿のページが生成されます
  2. SITE_URL/cities/CITY/EVENT特定の都市の特定のイベントを読むには、次のようなURLが必要です。

URLの作成方法を編集します。

Settings -> Permalinks管理パネルで「投稿名」を選択して保存します。

スクリーンショット

次に、CeEvents -> Cities管理画面に移動します。

スクリーンショット2

条件の1つ(私の場合はニューヨーク市)にカーソルを合わせて、[表示]をクリックします。

スクリーンショット3

そのterm(city)のリストビューが開き、URL構造は次のようになります。http://wp.local/city/new-york-city/

city読む必要がある場合citiesは、共有したメインプラグインファイルの102行目を変更してください。

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

編集2

テストイベントは都市の一部ではなく、都市ごとに分類された投稿です

于 2013-01-07T15:55:42.107 に答える
2

カスタム投稿タイプとしてCityを作成してみませんか?次に、スラッグの「都市」を定義してその結果を取得し、カテゴリやタグなどの分類法を追加して、ナビゲーションをさらに支援することもできます。

于 2012-12-30T02:01:12.190 に答える
2

そうしないでください。WordPressはあなたがやりたいことをするためのgoogAPIを提供します:きれいなURL(スラッグ)の管理、データベース操作(そのためにファイルを読み書きする必要はありません)そしてアクションを登録してトリガーするための正しいコードワークフロー。

したがって、 WordPressプラグイン(その哲学とAPI)の基本を読み始めてから、カスタム投稿タイプ(すぐに使用できる)を使用するか、特定のコンテンツタイプを作成するかを決定する必要があると思います。

于 2013-01-05T12:41:22.750 に答える
0

はい、これはすばらしいアプローチです。もう1つできることは、ファイル内にコードを追加する代わりに、DBからコードを選択することです。DBにテーブルを作成し、データ型としてvarcharを使用して列を作成し、その中に共通コードを挿入します。

于 2012-12-29T14:12:19.903 に答える