Usunięcie słowa generowanego w URL Wordpress

Dzień dobry

Mam stronę na Wordpress i potrzebuje usunąć słowo z url’a

http://test/specjalizacja/motoryzacja/?page=2/

tak aby osiągnać efekt

http://test/specjalizacja/motoryzacja/2/

Próbowałem w htaccess, w functions.php ale nic nie działa. Czy ktoś może mi doradzić jak mogę to zrobić?

Bo to zależy od motywu. Najprościej jest zmienić na format - .../motoryzacja/page/2 wystarczy ustawić tak zwane pretty permalinks.
Jeśli chcesz to zmienić tak jak podałeś w przykładzie to musisz edytować szablon - konkretnie sposób w jaki generowane są linki paginacji. Prawdopodobnie jest to robione przy użyciu funkcji paginate_links w tedy wystarczy zmienić jeden z atrybutów format na wartość /%#%. Teraz trzeba tylko dodać odpowiednie reguły rewrite, najlepiej w wordpressie, a nie htaccess.

Tak jest właśnie generowane przez paginate_links, tylko że jak zmienię format na %#% to wtedy nie ma takiej strony. W jaki sposób mogę dodać do wordpressa regułę żeby strona była generowana po zmianie formatu?

   <?php echo paginate_links(array(
        'base'               => preg_replace('/\/[0-9]+/', '', get_pagenum_link()).'%_%',
       'format'             => "?page=%#%/", 
       'total'              => $query->max_num_pages,
      'current'            => $currentPage,
     'show_all'           => false,
      'end_size'           => 1,
     'mid_size'           => 2,
    'prev_next'          => true,
    'prev_text'          => __('&laquo; Poprzedni'),
     
        	                )); ?>

Nie działa bo zrobiłeś tylko połowę z tego co napisałem. Drugą połowę możesz zrobić tak:


lub lepiej przy pomocy WordPressa.

Po za tym przy tym kodzie nie powiem Ci czy to będzie działało na pewno bo nie wiem co chcesz w pewnych momentach osiągnąć.

Próbuje w htaccess poniższe reguły i nie działa to bo pewnie dodaje w zły sposób:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /specjalizacja/([0-9]+)
RewriteRule ^ /specjalizacja/%1 [L,R=301]
RewriteRule ^/specjalizacja/([0-9]+)$ /specjalizacja/$1/$2 [L]

Chce osiągnąć efekt żeby przy paginacji usuwało słowo “?=page” z url tylko że ?=page jest w kategorii i podkategorii czyli /specjalizacja/motoryzacja/2

Coś w ten deseń:

RewriteRule ^(.*)/([0-9]+)$ /$1/page/$2 [L]

lub

RewriteRule ^(.*)/([0-9]+)$ /$1?page=$2 [L]

Zależnie od konfiguracji WP.

Próbówalem te zaproponowane ale jeszcze nie chce zadziałać. Bo o jaką konfigurację dokładnie WP chodzi?

Tutaj wklejam htaccess’a jaki jest ustawiony może coś to podpowie jak ustawić kolejne:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^^specjalizacja/(.*)? /index.php/specjalizacja/$1?category=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

O tą o której wspominałem wcześniej czyli pretty permalinks.

Podpowiada tyle, że to nie będzie działało bo robisz coś po swojemu, a nie to co Ci się pisze, albo podpowiada. W sumie to już się do tego przyzwyczaiłem bo to nie pierwszy raz. Zastanawiam się tylko po co piszesz na forum o pomoc skoro w ogóle nie korzystasz z rozwiązań które dostajesz.
Wklepiesz coś po swojemu bo wiesz lepiej i skwitujesz, że nie działa, albo zrobisz tylko połowę z tego co Ci się napisze. Nie wiadomo co w końcu nie działa, co zrobiłeś, a czego nie, no i czemu coś nie działa.

Zmieniłem format w paginacji. We wcześniejszym poście podałem htaccess ale taki jaki był domyślnie, obecnie z zastosowaniem się Twoich porad wygląda tak

  <IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^^specjalizacja/(.*)? /index.php/specjalizacja/$1?category=$1 [QSA,L]
RewriteRule ^(.*)/([0-9]+)$ /$1/?page=$2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Sam nie wiesz co zmieniasz i potem dziwisz się, że Ci coś nie działa. Nie podam Ci na tacy co jest źle szukaj sam. Ode mnie masz podpowiedź:

To:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /specjalizacja/([0-9]+)
RewriteRule ^ /specjalizacja/%1 [L,R=301]
RewriteRule ^/specjalizacja/([0-9]+)$ /specjalizacja/$1/$2 [L]

ani to

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^^specjalizacja/(.*)? /index.php/specjalizacja/$1?category=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

ani nawet to

  <IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^^specjalizacja/(.*)? /index.php/specjalizacja/$1?category=$1 [QSA,L]
RewriteRule ^(.*)/([0-9]+)$ /$1/?page=$2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

nie są domyślnymi regułami .htaccess WordPressa, więc nie wiem, gdzie wcześniej w poście je podawałeś. Obecnie to problem masz przez swoje reguły.

Nic innego nie podawałeś.