#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. Пожалуйста. Если этот ответ помог, пожалуйста, отметьте его как правильный, чтобы он мог помочь другим.