0

これが私の問題です。私の会社では、WordPress Web サイトにベンダー データベースを追加する必要があります。既存のプラグインはどれも私たちが必要とするものに近づくことさえできず、すべての情報を含む mysql データベースが既にあるため、必要なことを行うにはプラグインまたは何かを作成する必要があります。

これらの URL は直接アクセス可能で、SEF URL を持っている必要があります。たとえば、次のようになります。

mysite.com/vendors/
mysite.com/vendors/pipe-manufacturers/
mysite.com/vendor/bobs-pipes/

また、カスタム コンテンツは wordpress テンプレート内に表示する必要があります。

実際には 2 つのオプションがあります。

1) wordpress の外部でアプリケーションを作成する方法を見つけますが、wordpress をブートストラップしてヘッダー、フッター、およびサイドバーを表示する方法を見つけます。

2) wordpress 内からアプリを実行します。

だから私はオプション#2に行きました。「vendor.php」という名前の新しいテンプレート ファイルを作成し、作業を開始しました。このコードをテーマの functions.php に追加しました。

add_filter( 'template_include', 'xyz_template_check' );

function xyz_template_check() {
    global $template;

    $rqst = $_SERVER['REQUEST_URI'];

    $ra = split("/", $rqst);

    if ($ra[1] == "vendors") {

        $template_file = get_stylesheet_directory() . '/vendors.php';
        return $template_file;

    }

    return $template;


}

上記のコードが行うことは、サイト名の後の URL の最初の部分として「vendors」という単語が表示される場合、vendor.php に送信されます。これは完全に機能します....

を除外する...

Wordpress は、ページが見つからないと認識しています。404 ヘッダーが返され、ページ タイトルとブレッドクラムに NOT FOUND が含まれます。

パーマリンク「/vendors/」で「Vendor Database」というページを追加すると、メインページが修正されます。しかし、文字通り何百ものベンダーとさまざまなカテゴリが存在します。それぞれのカスタムページを作成することはできません。これは動的である必要があります。

では、wordpress に 200 を与えて、許容できるページ タイトル、ブレッドクラムなどを提供するにはどうすればよいでしょうか。

危険な wp_title フィルターを使い始めないでください。これは文書化されたとおりに機能しませんでした。ただし、これは Wordpress SEO の問題 (wp_title フィルターの問題) である可能性があることに気付きました。

誰でもこれについてアイデアを得ましたか?

4

1 に答える 1

0

わかりました。解決策は、前述のように書き換え API を使用してパターン /vendors/ を探し、それが有効な URL であることを知らせることでした。既存のテンプレートのオーバーライドと合わせて、これが必要でした。

于 2013-02-04T22:09:35.123 に答える