gabe
  • 0
Новичок

Как заставить внутренние якорные ссылки работать с постоянными ссылками WordPress?

  • 0

У меня есть пользовательская страница шаблона с именем 'shop', которая находится по URL-адресу http://mysite.com/shop/ . На этой странице все посты post_type расположены 'product' следующим образом:

<div class="product">  
<a name="product-name"></a>
<img src="path/to/image.jpg" />  
<h4>Product name</h4>`  
<p>A description of the product.</p>  
</div>`

На другой странице у меня есть такая ссылка:

<a href="/shop#product-name">Buy this product!</a>

Я хочу, чтобы эта ссылка вела на /shop страницу, а затем прокручивала вниз, чтобы расположить страницу прямо на якорной ссылке для этого продукта. Но похоже, что перенаправление «красивых постоянных ссылок» в WordPress мешает: как только он переключается на /shop#product-name страницу, URL-адрес переписывается, /shop/ и браузер оставляет страницу прокручиваемой вверху.

Мой .htaccess файл — это именно то, что сгенерировал WordPress: он выглядит так:

# 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

Мы будем очень признательны за любую помощь в правильной работе этих якорных ссылок.

( Примечание модератора: изначально заголовок был «Мои постоянные ссылки не поддерживают якорные ссылки на другую страницу».)

Share
  1. Была ли здесь действительно необходима смена названия? Вопрос действительно касается якорной ссылки, а не возни с настройкой постоянной ссылки (которая может потребоваться, а может и не потребоваться в конце).

    • 0
  2. Тупой вопрос, но вы пробовали:

    <a href="/shop/#product-name">Buy this product!</a>
    
    • 0
  3. Привет @Габриэль Рот :

    Есть ли шанс, что вы можете просто закодировать это так? (обратите внимание на косую черту после /shop ) :

    <a href="/shop/#product-name">Buy this product!</a>
    

    Конечно, если вы должны иметь его без косой черты, я думаю, что это сделает то, что вам нужно, хотя я не могу полностью протестировать ваш вариант использования, вам придется попробовать. Вы копируете этот код в плагин или, проще говоря, в functions.php файл вашей темы:

    add_filter('user_trailingslashit', 'no_trailing_slash_on_shop');
    function no_trailing_slash_on_shop($url_path) {
      if ($url_path=='/shop/')
        $url_path = '/shop';
      return $url_path;
    }
    
    • 0

Оставить ответ

You must login to add an answer.