web-dev-qa-db-ja.com

WordpressのわかりやすいURLの助けが必要

私はWordpressでいくつかのカスタムテンプレートを作成していて、URLにいくつかのデータを渡しています。

現在、私のURLは次のようになっています。 http://www.mysite.com/designers/?id=43&name=designer+name

URLには、デザイナーIDとデザイナー名が含まれています。

私は本当にこれを使用したいと思います: http://www.mysite.com/designers/designer+name/

私のパーマリンク構造は/%category%/%postname%/に設定されています

私の.htaccessファイルは次のようになります。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

私は http://codex.wordpress.org/Using_Permalinks を見ましたが、賢くはなりません。

2つ質問があります。

  1. SEOに関して上記のURLを変更する意味はありますか
  2. 「かわいい」URLを取得するにはどうすればよいですか。

UPDATE
説明のためにさらに情報を追加しています。

  • 自分でサイトを開発しています
  • テンプレートは100%カスタムテンプレートです
  • $ _GETからの情報に基づいて、私は私のカスタムDBテーブルからデータをロードし、これをページに表示します
  • 私のサイトは1日当たり3-400のユニークビジターがいる。ピーク時には、1日に2000人のユニークビジターがいます。
  • 私はオンラインファッション誌を開発しています
  • 私のURLは現在このように作成されています:

    Url = get_permalink().'?bid='.$brand->id.'&name='.$brand->name;

  • 私はここで同様の方法を使用しました:
    http://storelocator.no/search/?brandID=4673&storeID=0&brand=Moods+of+Norway

カスタム投稿タイプを使用することは私が検討した選択肢でしたが、デザイナー/ブランドがギャラリーに対してリンクされているので(そしてこれから登場する他のテーブルへのリンクが増えているので)、私自身のテーブル構造が必要です。そのため、WP POST表にブランドデータを保存することはできませんでした。

だから私はこれを知る必要があります:

  • 私のパーマリンク構造を使って何をする必要がありますか?
  • .htaccessファイルで何をする必要がありますか?
5
Steven

私は自分自身で書き換え規則についてあまり知りません(または知りませんでした)(しかし だれもしていないようです )しかし、ここでの他のいくつかの答えに基づいて、私はこれをうまくいきました。 designers/designer_name/に一致する新しい書き換え規則を追加します。データベースに保存されるように書き換え規則を「フラッシュ」しますが、これは高価な操作であるため、必ず1回だけ実行してください。それでは、ページに一致するパターンを設定し、余分な部分をdesigner_nameクエリ変数に保存します。 WordPressはそれがこの変数を見なければならないことを知らないので、query_varsフィルタにフックしてそれを見るように伝えます。

さて、page-designers.phpテーマファイルで、get_query_var('designer_name')を実行することができます、そしてそれはあなたにデザイナー名を与えます。ページング(designer/designer_name/page/2)のような追加のものが必要な場合は、そのための追加の書き換え規則(またはフィード、あるいはdesigner/designer_nameで始まるもの)を追加する必要があります。しかし基本的なものはうまくいくはずです。

<?php
/*
Plugin Name: WPA 3537
Plugin URI: http://wordpress.stackexchange.com/questions/3537/need-help-with-friendly-urls-in-wordpress
Description: Need help with friendly URL's in Wordpress
Version: 1.0
Author: Jan Fabry
*/

register_activation_hook(__FILE__, 'wpa3537_flush_rules');
function wpa3537_flush_rules()
{
    add_rewrite_rule('designers/([^/]+)', 'index.php?pagename=designers&designer_name=$matches[1]', 'top');
    flush_rewrite_rules(false);
}

add_filter('query_vars', 'wpa3537_query_vars');
function wpa3537_query_vars($query_vars)
{
    $query_vars[] = 'designer_name';
    return $query_vars;
}
4
Jan Fabry

最初に質問があります:次のようなURLをどのように取得していますか?

http://www.example.com/designers/?id=43&name=designer+name

これらはWordPressの標準URLではありません。あなたが想像するのはshouldが動作するということですか、それともあなたのサイトは実際にそのように動作するのですかもしそうなら、それらのURLはどのようになったのでしょうか?高度にカスタマイズされたサイトですか?誰がそれをカスタマイズしました;あなた、または他の誰か?

.htaccessについて

つまり、邪魔にならないように.htaccessから始めます。あなたのものは、他のすべてのWordPressインストールの.htaccessファイルと実質的に同じです。ただし、1。)は、URLサブディレクトリで提供されます(そして、違いは些細です)、2。)WordPressがどのようにURLを不正にルーティングするか、3。)実際に.htaccessを実際に必要とするまれな高度なインストールを除く方法を理解していない人がいました(そして、なぜあなたがそれをする必要があるのか​​わからない場合、チャンスはあなたがしないほぼ100%です。)

WordPress URLの主要カテゴリについて

次に、最初のパスセグメントにカテゴリ名を含む望ましいURL形式は、パフォーマンス上の理由でWordPressコミュニティが顔をしかめるパターンです。これを参照してください。

基本的に問題は、 "Pages"(つまり$post->post_type=='page')の握りが多い場合、WordPressはすべてのページ読み込みのすべてのURLを比較しますすべてのページのURLを使用すると、システムの速度が低下する可能性があります。とは言っても、もしあなたが少数のPagesしか持っておらず、あなたがトラフィックの多いサイトを持っていないなら、それを汗をかかないことは私の意見です。

Screenshot showing what Pages in WordPress are, i.e. $post_type=='page'
(ソース: mikeschinkel.com

それでは、質問に進みましょう。

1.)SEOに関する上記のURLを変更する点はありますか

はい。 URLをクリーンアップすると、キーワード密度が向上します。とはいえ、私の意見ではSEOには検索エンジンが見るものよりも多くのものがあり、あなたのURLをより親しみやすくすることで人々に自信を与え、リンクする可能性を高めますあなたのサイトをブログで共有し、リンクをTwitter、Facebook、その他で共有します。それには2つの利点があります。検索エンジンに表示されるリンクが増え、共有からの露出が増えます。

個人的に私はそれがどのように服を着るかとして考えるのが好きです。あなたが本当に乱雑な場合、人々はあなたが細心の注意を払っている場合よりもあなたについての潜在意識が低いだろう。同じことがURLにも当てはまると思います。クリーンでユーザーフレンドリーなURLがあれば、家は整然としています。ずさんなURLを使用している場合、サイトは "feel"と同じではなく、再びIMOになります。 (厄介なURLは、LinkedInを使うのが嫌いな理由の1つです。たとえば、TwitterのようにURLに注意を払えば、もっと成功したと思います。)

2.)「きれいな」URLを取得するにはどうすればよいですか?

この記事やCodexのこのページは役立つと思いますか?

基本的に、パーマリンクテンプレートを設定して保存する必要があります。 WordPressがそれらを保存する前に、.htaccessの許可設定を変更するためにFTPを使用する必要がある場合があります。このスクリーンショットで何をする必要があるかを説明できれば幸いです。

Screenshot showing how to Set Permalinks in WordPress
(ソース: mikeschinkel.com

これがあなたの質問に答えるかどうか、もしそうでなければあなたが行き詰まっている場所を教えてください。

その他のパーマリンク回答

さらに、WordPressのパーマリンクに関する質問に対する他の回答がたくさんありますここWordPress回答;これらのいくつかは、あなたにとっても役立つかもしれませんが、順不同です。

3
MikeSchinkel

Jan Fabryが書いたすべてのことを書いたが、電話したとき:

http://www.mysite.com/customPostTypeSlug/page/id

Wordpressリダイレクト(301)私にリダイレクト:

http://www.mysite.com/customPostTypeSlug/page

私のルールは( "init"アクションによって呼ばれる)です:

add_rewrite_rule(
        'customPostTypeSlug/page/([^/]+)/?' ,
        'index.php?customPostTypeSlug=page&id=$matches[1]',
        'top'
    );

それから私はそれを洗い流す。

パーマリンクを%category%/%postname%から%postname%に変更しましたが、うまくいきそうです。

0
Merlinox