Baza kategorii WordPress nie znajduje się w bezpośrednim linku postu
WordPress Development Stack Exchange to witryna z pytaniami i odpowiedziami dla programistów i administratorów WordPress. Rejestracja zajmuje tylko minutę.
Zarejestruj się, aby dołączyć do tej społeczności
Każdy może zadać pytanie
Każdy może odpowiedzieć
Najlepsze odpowiedzi są głosowane i trafiają na sam szczyt
Spytał
Oglądane1 tys. razy
Mam skonfigurowaną witrynę woocommerce z blogiem.
Dla sklepu:
- example.net/shop (Pokazuje wszystkie produkty)
- example.net/shop/category (Pokazuje wszystkie produkty w danej kategorii)
- example.net/shop/category/product (Pokazuje produkt)
Dla bloga:
- example.net/blog (Pokazuje wszystkie posty)
- example.net/blog/category (pokazuje wszystkie posty w danej kategorii)
- example.net/blog/category/post (Pokazuje post)
Moje ustawienia łącza bezpośredniego to:
Wspólne ustawienia
- Struktura niestandardowa – /%kategoria%/%postname%
Opcjonalny
- Baza kategorii – blog
- Baza kategorii produktów – sklep
- Baza tagów produktów – tag
Bezpośrednie linki do produktów
- Baza niestandardowa – /shop/%product_cat%/
Jak powiedziałem, linki działają tak, jak chcę, aby działały, kiedy tworzę kategorię postów, otrzymuję adres URL „example.net/blog/category-slug” ale kiedy tworzę post i dodaję go do kategorii, otrzymuję bezpośredni link nie „example.net/blog/category-slug/post-slug”, ale „example.net/category-slug/post-slug”
Nawiasem mówiąc, nie będzie żadnych podkategorii.
4
Dla każdego, kto szuka odpowiedzi, użyłem do tego Chat GPT i zadziałało. Umieść poniższy plik w plikufunction.php (wyrywałem sobie włosy, próbując to naprawić LOL, mam nadzieję, że to pomoże)
/*Hickman Design edit for URL rewrite*/
function custom_rewrite_rules($rules) {
global $wp_rewrite;
// Custom rewrite rule for category archive pagination
$new_rules = array(
'blog/(.+)/page/?([0-9]{1,})/?$' => 'index.php?category_name=" . $wp_rewrite->preg_index(1) . "&paged=' . $wp_rewrite->preg_index(2)
);
// Merge the new rule into existing rules
return $new_rules + $rules;
}
add_filter('rewrite_rules_array', 'custom_rewrite_rules');
// Flush rewrite rules (This should only be done once)
function custom_flush_rules(){
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action('after_switch_theme', 'custom_flush_rules');
domyślny