web-dev-qa-db-ja.com

WordPressを既存のものに統合する方法はありますか PHP フレームワーク、CMS、およびナビゲーションシステム

私は、コンテンツ管理システム(CMS)、ECコマースシステム、その他のさまざまなモジュール(スライドショー、紹介文、フォーム、FAQなど)を顧客に提供するモジュラーPHPフレームワークシステムの上級開発者です。 )

私のフレームワークは、既存の.htaccessファイルを介してサイト上のすべてのURLを処理し、それらのURLを適切なモジュールに送ります。

ユーザーにとって非常に重要なこのフレームワークの1つの機能は、フレームワークがナビゲーションを含むページ全体の生成を処理するという事実です。ページこれを守ることは非常に重要です。

多くのお客様から、WordPressモジュールを追加するように依頼されました。既存のPHPフレームワークおよびナビゲーションテンプレート内にWordPressを統合または「埋め込む」ことができます。これにより、WordPressエンジンはURLを解析し、通常どおりすべての承認アクションを実行しますが、HTMLコンテンツのみを出力します。私のフレームワークが「テンプレート」HTMLを処理することを可能にするサイトの本体?

参考までに、私はPHPのエキスパートですが、WordPressにはほとんど触れていません。 PHPを多用した答えで私を全然恐れることはありません(実際には、該当する場合はいただければ幸いです)。

3
Josh

WordPress自体は実際には完全なHTMLを生成するのではなく、その一部のみを生成します。テーマから指示された場合に限られます。ヘッダーや本文などはテーマ次第です。あなたのテーマがセクションを出力しなかったのであれば、それは出力されないでしょう。

WP自体は実際には本格的なCMSですが、次のようにセクションの単なるジェネレータとして使用できます。

  1. 必要なビットだけを出力するテーマを作成してください。テーマはstyle.cssファイルやindex.phpファイルと同じくらいシンプルなものにすることができます。 http://codex.wordpress.org/The_Loop を参照してください。

  2. WPのメインのindex.phpファイルを調べると、define('WP_USE_THEMES', true);、次にrequire('./wp-blog-header.php');以外の何もしていないことがわかります。ですから、WPを起動して出力を生成するのと同じことができます。

  3. URLの取り扱いは難しいかもしれません。 WordPressは、ある「ルート」URLに存在し、その下の(ほとんどの)URLを処理することを期待しています。そのため、homeとsiteurlの中でそのルートURLを知る必要があります。これをモジュールとして実装すること。もしこれらを前もって知っていれば、それを含める前にWP_HOMEとWP_SITEURLを事前に定義して問題を強制することができます。参照してください、WordPress自身の.htaccessは基本的にまだシステム上のファイルまたはディレクトリとして存在しないURLをindex.phpにルーティングします。それからそれ自身のURLを解析し、それからルートを多かれ少なかれ引き算することを知っています。

それはおそらくあなたが少なくとも始めるために十分なはずです。トリックは、この方法でそれを実装するなら、どんなWPテーマでもうまくいくことはないだろう、あなたはそれと共に特別な "セクションのみ"テーマを提供しなければならないだろうということです。サイドバー、メニュー、部分的なページジェネレータとしてWPを使用するという設計に合わないものなど、他のものも無効にするカスタムコードが必要な場合があります。

4
Otto