0

私は検索しました、これがクローズ結果です。

私は新しいワードプレスサイトを構築しています。ほとんどの投稿の URL にカテゴリがなく、単に www.site.com/title であることを望みます。ただし、ブログの投稿を分けたいので、www.site.com/blog/title にしたいと思います。また、サイト全体ではなく、特定のカテゴリのみに対して、将来的にそのようなものを追加するオプションも欲しい.

ここstackoverflowにはこれに似た質問がたくさんありますが、ほとんどの回答は0です。どんなアドバイスも素晴らしいでしょう。高度なパーマリンクも試してみましたが、うまくいきませんでした。

4

1 に答える 1

7

[設定] > [パーマリンク] で簡単に実行でき、[共通設定​​] > [カスタム構造] に値を追加します/blog/%postname%/。そこには、www.site.com/blog/title からアクセスできるブログ投稿が表示されます。

最初の質問が理解できません。に:

ほとんどの投稿の URL にカテゴリを含めないようにしたい

www.site.com/category/category-name を持たないということですか? またはwww.site.com/category/postを持っていませんか?

編集#1

これに答えるには:

www.site.com/category/post は、「ブログ」のカテゴリのブログ投稿にのみ必要なものです > カテゴリが「靴」の場合、URL にカテゴリを表示したくありません。–</p>

まず、パーマリンクを設定して/%postname%/、すべての投稿にサイト/タイトルがあり、そのリンクからアクセスできるようにすることができます

2 番目: パーマリンクをフィルタリングして、「ブログ」カテゴリの投稿に対して異なる動作をさせる必要があります。

これを試して

add_filter( 'post_link', 'custom_permalink', 10, 2 );
function custom_permalink( $permalink, $post ) {
    // Get the categories for the post
    $categories = wp_get_post_categories( $post->ID );
    foreach ( $categories as $cat ) {
        $post_cat    = get_category( $cat );
        $post_cats[] = $post_cat->slug;
    }

    // Check if the post have 'blog' category
    // Assuming that your 'Blog' category slug is 'blog'
    // Change 'blog' to match yours
    if ( in_array( 'blog',$post_cats ) ) {
        $permalink = trailingslashit( home_url( 'blog/' . $post->post_name ) );
    }

    return $permalink;
}

3番目: rewrite_rules をフィルタリングする必要があります

add_filter( 'rewrite_rules_array', 'custom_rewrite_rule' );
function custom_rewrite_rule( $rules ) {
    $new_rules = array(
        'blog/([^/]+)/trackback/?$' => 'index.php?name=$matches[1]&tb=1',
        'blog/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?name=$matches[1]&feed=$matches[2]',
        'blog/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?name=$matches[1]&feed=$matches[2]',
        'blog/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?name=$matches[1]&cpage=$matches[2]',
        'blog/([^/]+)(/[0-9]+)?/?$' => 'index.php?name=$matches[1]&page=$matches[2]'
    );

    $rules = $new_rules + $rules;

    return $rules;
}

パーマリンク設定に移動し、設定を保存して書き換えルールを更新し、上記の変更を有効にします

注: これらの関数をアクティブなテーマfunctions.phpテンプレートに追加します。

注意: まだテストしていませんが、パーマリンクを変更する方法です。同様の方法で、アーカイブと検索結果のパーマリンクを変更しました。

于 2012-06-15T01:03:17.410 に答える