タグ付けされた質問 「rewrite-rules」

書き換えルールは、Web URLの外観を変更します。この変更は、URL書き換えと呼ばれます。書き換えられたURL(短い、派手なURL、検索エンジンフレンドリー-SEF URL、またはスラッグとしても知られる)は、Webページへのより短く、より関連性の高いリンクを提供するために使用されます。この手法は、Webページの生成に使用されるファイルと、外部に提示されるURLとの間に抽象化の層を追加します。

1
add_rewrite_ruleのヘルプが必要
解決 Update 3を使用して、動作するようになりました。私は誤解していた何を、私は書き換えルールが変わると信じていたということでしたdesigners/?designer=some-designer&bid=9し/designers/some-designer。しかし、もちろんその逆です。 私はいくつかの研究を行ってきましたが、add_rewrite_rule()の使用方法がわかりません。 この投稿は私が必要とするものにかなり近いですが、本当にそんなに多くのコードが必要ですか? 私の現在のリンクはこれです: http : //www.norwegianfashion.no/designers/ ? designer=Batlak-og-Selvig& bid=9私が欲しいのはこれです http://www.norwegianfashion.no/designers/Batlak-og-Selvig / どうやって使うのadd_rewrite_rule()? デザイナーID(入札)を渡す必要があります。URLに表示せずにre.writeルールを使用する場合、どうすればよいですか? アップデート1 私はこれを見つけたもう少しexplainatoryです。しかし、それは機能していません: function add_rewrite_rules( $wp_rewrite ) { $new_rules = array( '('.$template_page_name.')/designers/(.*?)/?([0-9]{1,})/?$' => 'designers.php?designer='. $wp_rewrite->preg_index(1).'&bid='. $wp_rewrite->preg_index(2) ); // Always add your rules to the top, to make sure your rules have priority $wp_rewrite->rules = $new_rules …

9
WordPressで「仮想」ページを作成する方法
WordPressでカスタムAPIエンドポイントを作成しようとしていますが、WordPressのルートにある仮想ページへのリクエストを、プラグインに同梱されている実際のページにリダイレクトする必要があります。したがって、基本的に、1つのページに対するすべてのリクエストは、実際には他のページにルーティングされます。 例: http://mysite.com/my-api.php=>http://mysite.com/wp-content/plugins/my-plugin/my-api.php これのポイントは、APIエンドポイントのURLをできるだけ短くすることです(http://mysite.com/xmlrpc.phpただし、ユーザーがインストール内でファイルを移動したり、コアをハックしたりするのではなく、実際のAPIエンドポイントファイルをプラグインに同梱します) 。 私の最初のスタブは、カスタム書き換えルールを追加することでした。ただし、これには2つの問題がありました。 エンドポイントには常に末尾のスラッシュがありました。なったhttp://mysite.com/my-api.php/ 私の書き換えルールは部分的にしか適用されませんでした。にリダイレクトせずwp-content/plugins...、にリダイレクトしindex.php&wp-content/plugins...ます。これにより、WordPressでページが見つからないというエラーが表示されるか、ホームページがデフォルトになります。 アイデア?提案?

2
カスタムURLルートを作成する方法は?
私には非常に独特な要件がありますが、うまくいけば、混乱しすぎずに説明できるでしょう。外部XMLファイルから取得したいくつかのプロパティをリストするページテンプレートを作成しました。これまでのところ問題はありません。URLは次のようになります。 http://www.example.com/properties/ 各プロパティには、ユーザーに関する詳細情報を表示する「単一プロパティ」ページにリダイレクトするリンクがあります。このようなリンクを作成する方法があるかどうか疑問に思っていました: http://www.example.com/properties/123 123プロパティのIDはどこになりますか。以下のように私はURLを持っているのであればproperties/some_id、私は、ビュー(のようなファイルをロードできるようにするsingle.phpか、page.phpこのURLの状態へのファイル)が、特定の。 これは可能ですか?

1
add_rewrite_tag()はいつ使用する必要がありますか?
書き換えルールを追加する最適な方法を学ぶために数日を費やしました。これまでのところ、単純なルールを追加する適切な方法はを使用することadd_rewrite_rules()であると理解しています。この交換についてJan Fabryに深く感謝します。 彼は言及add_rewrite_tags()しているが、書き換えルールを追加する他の方法やその使用法の良い例とは対照的に、それを使用することが有益である場合を説明するガイドを見たことがない。それはより強力なツールのように思えますが、それは私が推測できるすべてについてです。Codexの例は、難解すぎるか不完全であることがわかりました。誰かがそれについて詳しく説明したり、何らかのリソースを指すことができますか?Googleでは何も役に立たなかった。 編集: そのコーデックスページは、それをとともに使用する「一般的」についてadd_rewrite_rules()述べていますが、詳しくは述べていません。同様に、コーデックスのページもadd_rewrite_rules()参照しadd_rewrite_tags()ていますが、情報も非常にまばらです。そのような組み合わせはいつ、どのように使用されますか?私が見つけた唯一の例は、私が理解していないロブ・フェルメールによるこの答えです。

1
マルチサイトで書き換えルールを確実にフラッシュする方法は?
書き換えルールをフラッシュする必要があるプラグインがあるとします。アクティベーションフックとフラッシュレイトを追加することですべて適切に行うため、すべてがスムーズで互換性があります。 そして、ある晴れた日、誰かがそれをマルチサイトで実行しようとします。 次のような単純なシナリオの代わりに: WordPressサイトが作成されます プラグインがインストールされ、アクティブ化されています 次のような悪夢のシナリオがあります。 プラグインがインストールされ、ネットワークがアクティブになりました マルチサイトの新しいWordPressサイト(または100)が作成されます 理論的には、うまくいくはずですよね?実際には、それは見事な方法で間違っています: $wp_rewrite 状態は間違ったサイトからのものである可能性があります switch_to_blog() 書き換え状態も追跡しません 「後の」部分は別のブログで完全に発生する可能性があります 他のすべてのプラグインは、さまざまなサイトで一貫して有効になっていない可能性があります。 たとえば、この問題は、新しいサイトが作成されるたびに、メインサイトのパーマリンクが正しく表示されないことを示しています。 したがって、プラグインは、マルチサイトで書き換えルールを確実にフラッシュする方法を説明します。 新しいサイトが作成されると、そのサイトは? 既存のサイトが非アクティブからアクティブになった場合、そのサイトはどうですか? すべてのサイトでプラグインがネットワークで有効化されるとき すべてのサイトでプラグインがネットワークで無効になっている場合 おそらく他のシナリオで、グローバルコンテキストの書き換えが変更される可能性がありますか?

1
カスタム投稿タイプに親ページを含めることはできますか?
カスタム投稿タイプの親としてページを割り当てることについて、Webiverseで多くの投稿を見てきました。4時間後、解決策が見つからず、助けが必要です。「Our People」ページの親である「About」ページを作成しました。また、「People」というカスタム投稿タイプを作成しました。そして、「Our People」ページ用のカスタムページテンプレートを作成しました。パーマリンク構造は、単一の「人」ページに到達するまで正常に見えます。例:ジョンスミスのページ、パーマリンクは正しくありません。 カスタム投稿タイプ: 望ましいパーマリンク構造: / about-us / our-people / john-smith 実際のパーマリンク構造: / our-people / john-smith 社員ページの構造: / about-us / our-people 「about-us」はページであり、「our-people」はページであり、カスタム投稿タイプ「people」のスラッグも書き換えます。階層設定を変更しようとしましたが、「about-us / our-people」をリライトに直接追加しようとしましたが、成功しませんでした。 Functions.php: function codex_custom_init() { // Our People $people_label = array( 'name' => 'People', 'singular_name' => 'People', 'add_new' => 'Add People', 'add_new_item' => 'Add New People', 'edit_item' …


2
プラグイン付きのカスタムページ
カスタムページを有効にするプラグインを開発しています。私の場合、カスタムページには、連絡フォーム(文字通りではない)のようなフォームが含まれています。ユーザーがこのフォームに記入して送信する場合、詳細情報が必要な次のステップが必要です。フォームの最初のページがフォーム送信www.domain.tld/custom-page/に成功した後、ユーザーはにリダイレクトされるはずだとしましょうwww.domain.tld/custom-page/second。HTML要素とPHPコードを含むテンプレートもカスタムにする必要があります。 問題の一部はカスタムURLの書き換えで達成できると思いますが、他の部分は現在のところ不明です。どこから探し始めればよいのか、その問題の正しいネーミングは何なのか本当にわかりません。どんな助けも本当に感謝されます。

2
add_rewrite_ruleについて
私はadd_rewrite_ruleurlからparamを抽出し、それをリクエストに渡そうとしています。これに関する多くの投稿を見ましたが、それを機能させることができないようです。 URLが特定の文字列で始まる場合、それをURLから削除し、クエリパラメータとして渡します。 リクエストURLの例: http://domain.com/foo/my_page これは http://domain.com/my_page?param=foo 'foo'が存在しない場合は、通常のリクエストと同じように処理されます。このロジックは、サイトのページURLまたはカスタム投稿タイプURL(基本的にはfoo / *)に適用する必要があります。それがパススルーとして機能することを考えると、URLに「foo」がある場合はそれを取り除き、Wordpressに渡すだけで正常に処理されます。 私はすでに許可されたquery_varsとして 'param'を持っています。 全体として、次のことを行う必要があります。 / foo / my_page(ページ) / foo / my_folder / my_page(サブページ) / foo / example_type(カスタム投稿アーカイブ) / foo / example_type / example_post(カスタム投稿シングル)

6
どこで、いつ、どのようにして、プラグインのスコープ内で書き換えルールを適切にフラッシュするか?
リライトルールが正しくフラッシュされないという奇妙な問題が発生しています。 私が使って試してみましたflush_rewrite_rules();とflush_rewrite_rules(true);。 私もグローバル化しようとした$wp_rewrite使用$wp_rewrite->flush_rules();と$wp_rewrite->flush_rules(true); どちらも書き換えルールを正しくフラッシュしていないようです。これらの呼び出しは、呼び出されたときに実際に書き換えルールをフラッシュしています。どうすればわかりますか?書き換えルールのフラッシュをデバッグするためのソリューションの使用。 現在、プラグインのアクティブ化と非アクティブ化でフラッシュされた書き換えルールがあります。そこに問題はありません。 ユーザーがプラグインを設定するためのプラグイン管理設定ページがあります。一部の設定はパーマリンク構造を調整するため、プラグイン管理設定ページの[設定を保存]で書き換えルールをフラッシュする必要があります。(標準を使用update_option();)設定を保存します。 指定した設定に応じて、ユーザーが指定した設定と一致するカスタム投稿タイプが作成されることに注意したいと思います。したがって、設定が保存された直後に書き換えルールをフラッシュする必要があります。これは、物事が適切に機能していない場所です。 によって提供された書き換えルールをデバッグするための上記のリンクソリューションは、@toscho大量の書き換えルールをフラッシュしていることを示しています。ただし、カスタム投稿タイプの単一アイテム、さらにはカスタム投稿タイプのアーカイブにアクセスすると、それぞれが404エラーとして返されます。 カスタム投稿タイプが正しく適切に登録されている。それが問題ではないことは確かです。 プラグイン管理ページの設定を保存するとすぐに続きます。カスタム投稿タイプが作成され、パーマリンク構造が調整され、すべての書き換えルールがフラッシュされます。 その後、カスタム投稿タイプは常に読み込まれinit、通常どおりに読み込まれます。 なんらかの理由で、前述のように、カスタム投稿タイプの単一セクションまたはアーカイブセクションにアクセスすると404エラーが返されるため、書き換えルールが適切にフラッシュされません。 奇妙な部分ですが、管理パーマリンク設定ページにアクセスし、フロントエンドに戻ってカスタム投稿タイプの単一セクションまたはアーカイブセクションを表示するだけの場合は、期待どおりに魔法のように機能します。 その管理パーマリンク設定ページは、私が実行していないことで、書き換えルールが適切にフラッシュされ、私のものはそうでないことを可能にしますか? つまり、一時的な解決策として、プラグインの管理設定ページを保存した後、ユーザーを管理パーマリンク設定ページにリダイレクトしていますが、これは理想的な解決策ではありません。私は、プラグインのコード内で適切にフラッシュする書き換えルールを好みます。 WordPressで、書き換えルールをフラッシュしても、すべてのルールがフラッシュされないという点はありますか? admin_menu -プラグイン設定ページがWordPressの管理に追加されました。 add_options_page() -[設定]メニューの下にプラグイン設定ページが追加されました。 設定ページはのコールバックでレンダリングされますadd_options_page()。これは、$_POSTプラグイン設定の更新と書き換えルールのフラッシュのために処理される場所でもあります。 これはすでに長い質問ですので、有効な回答を生成するのに役立つオフサイトリンクにコードブロックを(提供する場合)提供してもかまいません。

2
muプラグインプラグインで、カスタム投稿タイプのflush_rewrite_rulesを使用する最良の方法は?
(とりわけ)カスタム投稿タイプをインスタンス化するプラグインを書いています。これはマルチサイトプラグインであり、mu-pluginsディレクトリにあります。 この状況でflush_rewrite_rules()を処理するためのベストプラクティスは何ですか?「通常の」プラグインの場合、これはアクティベーションフックで行います。これらのフックは使用できないため、必須のプラグインでは不可能です。 これはカスタム投稿タイプを登録した後の「1回限りの」イベントであるため、CPTを登録するクラスで次のようなことを行うのは理にかなっています。 private function check_flush_my_CPT() { global $wp_rewrite; if ( !get_option('my_plugin_firstrun') ) { $wp_rewrite->init(); $wp_rewrite->flush_rules(true); update_option('my_plugin_firstrun', 'yes'); } } public function register_my_CPT() { // do all the CPT setup steps for the $args array... register_post_type('my_CPT', $args); $this->check_flush_my_CPT(); } add_action( 'init', array(&$this, 'register_my_CPT' ) ); したがって、CPT登録はすべての「init」アクションで発生しますが、この権限がある場合、書き換えルールのフラッシュは1回だけ発生します。 これまで。 私は正しい軌道に乗っていますか? (編集):試してみたところです。私のCPTは404 not …

3
カスタム投稿タイプと分類法のWordPress書き換えルール
私が遭遇した問題について多くのグーグル検索を行った結果、過去にこの場所が良い情報源であることがわかりました。私の質問は、WordPressが使用する詳細な書き換えルールに関するものです。 projectというカスタム投稿タイプを設定し、projectsというカスタム分類法を登録しました。書き直しのスラグオプションを除いてすべてがうまく機能しますが、それらは競合することになります-ほとんどの場合、書き直しルールが原因です。 基本的にこれは私が達成しようとしている構造です: example.com/work/%taxonomy%/%post_name%/ (投稿用) example.com/work/%taxonomy%/ (特定の分類用語に属する投稿をリストします) example.com/work/ (taxonomy.phpを含むpage-work.phpに移動して、その分類に関連するすべての投稿をリストします) ここに私が持っているコードがありますが、これは私が少し困惑しているビットなので、WP_Rewriteルールを書くのに助けが必要です。 $labels = array( 'name' => _x('Projects', 'post type general name'), 'singular_name' => _x('Project', 'post type singular name'), 'add_new' => _x('Add New', 'project item'), 'add_new_item' => __('Add New Project'), 'edit_item' => __('Edit Project'), 'new_item' => __('New Project'), 'view_item' => __('View Project'), …

2
カスタム投稿タイプのパーマリンク/書き換えがすぐに機能しない
次のものでレンガの壁を打つ: 私が持っています: 1つのカスタム投稿タイプが呼び出されました cpt_community 1つのカスタム分類が呼び出されました tax_community 'rewrite' => trueCPT登録で設定した場合、このCPTのエントリへのパーマリンクはの形式http://<domain>/cpt_community/test_item/になり、参照すると404が表示されます。 私が設定した 'rewrite' => false場合、パーマリンクはhttp://<domain>/?cpt_community=test_item/であり、これは正常に機能します。 だから、私は明らかに何か間違っている/愚かなことをしています-問題は、何ですか? [更新] すべての変更後、[設定]> [パーマリンク]に移動して(そして保存して)ルールをフラッシュします すべてを1時間放置した後、物事は正常に機能し始めました-それでなぜ遅れているのですか? コード CPT登録 function community_post_type() { $labels = array('name' => 'Community'); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' …

1
アーカイブページと単一投稿のカスタム書き換えルール
いくつかのカスタム投稿タイプを使用してWordpressサイトを構築しています。すべての投稿タイプは異なる雑誌です。雑誌の年号用のカスタムメタフィールドもあります。 私はURLを使用したいと思います(archive.phpを使用): http://my_site/magazine/name/ http://my_site/magazine_name/year/ http://my_site/magazine_name/year/issue/ 私はコードでそれを作りました: function magazine_rewrite_tag() { add_rewrite_tag('%issue_year%', '([0-9]{4})'); add_rewrite_tag('%issue%', '([0-9])'); } add_action('init', 'magazine_rewrite_tag', 10, 0); そして: function magazine_rewrite_rules() { add_rewrite_rule('^([a-z]+)/([0-9]{4})/([0-9])?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]&issue=$matches[3]', 'top'); add_rewrite_rule('^([a-z]+)/([0-9]{4})?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]', 'top'); } add_action('init', 'magazine_rewrite_rules'); もちろん、archive.phpにもカスタムクエリがあります。そしてそれはうまくいきます。 しかし、今、私の単一の記事のURLは機能しません。デフォルトでは、次のとおりです。 http://my_site/magazine/post-title しかしそれはurlのような雑誌からのすべての記事を表示します(そしてそれはarchive.phpテンプレートを使用しました): http://my_site/magazine/ 単一のカスタム投稿に適切に書き換えルールを追加するにはどうすればよいですか?可能です。次の形式で単一の投稿(選択したカスタム投稿タイプのみ)のURLが必要です。 http://my_site/magazine/year/issue/post-title

1
CPTテンプレートが表示されない-404の取得
私は、カスタムポストタイププラグインを開発しています。これは、devで正常に動作します。本番環境に移動したので、CPTのテンプレートを表示しようとすると404が表示されます。 したがって、2つの質問: 1- WPが階層を通過するために使用したパスを決定するメカニズムはありますか? 2-なぜそれは私に単一またはインデックスページを与えないのですか? $ wp_queryとスタックトレースを404の最後にダンプしました。これが私が見つけたものの一部です: [query] => Array ( [page] => [pagename] => refletters/proximity ) [request] => SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND (wp_posts.ID = '0') AND wp_posts.post_type = 'page' ORDER BY wp_posts.post_date DESC [posts] => Array ( ) [queried_object] => [queried_object_id] => 0 そしてスタックトレース: 2013-04-27 22:16:41 …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.