Как я сделал с помощью GPT чтобы ссылки на текущую страницу сайта (на которой пользователь находиться в данный момент) были неактивны...
Скриншоты: https://vse-mikrozaymy.ru/, https://vse-mikrozaymy.ru/na-kartu/, https://vse-mikrozaymy.ru/kurs-valyut-cb-rf/usd/
Короче нужно было сделать так, чтобы ссылки ведущие на текущую страницу стали неактивны и меняли цвет, для удобства пользователя и немного для SEO.
Ниже выкладываю общение с GPT и конечно код (может кому пригодиться)
Итак поехали:
Я: Нужно написать функцию чтобы при нахождении на текущей странице сайта wordpress все активные ссылки которые указывают на неё же, стали неактивными. Можно это сделать?
GPT: Да, конечно, можно написать функцию для WordPress, которая будет проверять все активные ссылки на текущей странице и делать неактивными те из них, которые указывают на текущую страницу. Для этого мы можем использовать jQuery в WordPress. Ниже приведен пример кода:
Добавьте следующий код в файл functions.php вашей темы (или в плагин, если вы пишете плагин):
<?php
add_action('wp_footer', 'disable_self_links');
function disable_self_links() {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
var currentPage = '<?php echo get_permalink(); ?>';
$('a').each(function() {
var link = $(this).attr('href');
if (link && link === currentPage) {
$(this).removeAttr('href').css('cursor', 'not-allowed').click(function(e) {
e.preventDefault();
});
}
});
});
</script>
<?php
}
?>
Этот код добавляет скрипт jQuery в подвал вашей страницы WordPress. При загрузке страницы он находит текущую страницу (используя get_permalink()) и затем проверяет каждую ссылку на странице. Если ссылка указывает на текущую страницу, то ссылка делается неактивной (удаляется атрибут href), меняется курсор на not-allowed и добавляется обработчик клика, который предотвращает действие по умолчанию.
Сохраните изменения в файле functions.php.
Теперь, когда вы открываете страницу в WordPress, все активные ссылки, указывающие на текущую страницу, будут неактивными для кликов пользователей.
Я: Все работает! Спасибо!
Этот код только делает ссылки неактивными и меняет курсор. Я примерил его и потом решил попросить доработать код немного:
Я: Можешь немножко дополнить скрипт. Заменить тег ссылки на <div> и добавить класс "current".
GPT: Конечно, можно добавить класс "current" к тегу <div>, который заменит тег <a>. Вот обновленный скрипт:
add_action('wp_footer', 'replace_links_with_div_current');
function replace_links_with_div_current() {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
var currentPage = '<?php echo get_permalink(); ?>';
$('a').each(function() {
var link = $(this).attr('href');
var isSearchResultsPage = $(this).closest('.search-results').length > 0;
if (link && link === currentPage && !isSearchResultsPage) {
var divElement = $('<div>').addClass('current').html($(this).html());
$(this).replaceWith(divElement);
}
});
});
</script>
<?php
}
Теперь при замене тега <a> на <div>, этот <div> будет иметь класс "current". Если у вас есть еще вопросы или запросы, не стесняйтесь спрашивать!
Я: Спасибо! Все работает!
Вот такой результат: кого интересует может посмотреть здесь (не реклама). Смотрите в сайдбаре ссылки. Видно лучше всего что ссылка ведущая на текущую страницу стала неаетивной и красно-оранжевого цвета.
В одном посте на DTF, в комментариях люди говорят что GPT часто ошибается (вот комментарии). Я с этим не согласен. Единственное что хочу от себя добавить: в настройках GPT всегда разрешите сохранять историю, и ставьте вопросы конкретно и пошагово. Если вы его попросите сделать все сразу, то результат будет неудовлетворительным.
Всем пока! Удачи с вашими проектами!