Создание фиксированного значения идентификатора меню

#php #wordpress

#php #wordpress

Вопрос:

Моя проблема в том, что я использую тему для WordPress, которая автоматически делает идентификатор меню таким же, как заголовок этого меню.

Это означает, что если я использую символы не в английском алфавите от А до Я, прокрутка не будет работать для этих меню. Сидел несколько часов, пытаясь понять, что редактировать и как.

 <?php
$section_menu = zels_get_option('portfolio');
$id = strtolower(str_replace(' ', '-', $section_menu['name'])); ?>
  

Я подозреваю, что смогу каким-то образом изменить этот код, чтобы привязка меню # имела фиксированное значение, а не основывалась на названии раздела, но опять же я не могу быть уверен.

Если вам нужна дополнительная информация, просто дайте мне знать, сайт размещен локально.

Любая помощь будет в значительной степени оценена

Заранее благодарю вас

Комментарии:

1. $id = 'your-fixed-value-here';

2. Действительно, я чувствовал, что это тоже решение, но после обновления оно точно такое же:(.

3. Затем вам нужно будет показать больше кода. Где используется этот идентификатор?

4. pastebin.com/6Fe1S3eh Вот так, не позволил мне вставить его сюда, потому что он был слишком длинным. Спасибо!

5. Замена $id переменной должна работать. Можете ли вы предоставить ссылку на свой проект?

Ответ №1:

Вам нужно будет обновить файл заголовка и все файлы в папке разделов

header.php

Измените строку 97 с

 echo '<li><a href="#' . sanitize_title_with_dashes( $section_name ) .'">' . $section_name . '</a></li>';
  

Для

 echo '<li><a href="#' . sanitize_title( $section_name ) .'">' . $section_name . '</a></li>';
  

Для файлов в папке разделов измените строку 7 с

 $id = strtolower(str_replace(' ', '-', $section_menu['name']));
  

Для

 $id = sanitize_title( $section_menu['name'] );
  

sanitize_title Функция заменит пробелы тире и изменит символы акцента на их эквиваленты без акцента.

Комментарии:

1. Ты, черт возьми, спаситель жизни, я не знаю, как тебя отблагодарить. Это отлично решило мою проблему!! хорошего дня и жизни.

2. Пожалуйста. Если этот ответ помог, пожалуйста, отметьте его как правильный, чтобы он мог помочь другим.