Долговечный читатель stackoverflow, но первый вопрос.
Я работаю с WordPress (в частности тезис темы) в файле custom_functions.php и по какой-то причине автоматически добавляет текущий URL-адрес страницы. Например, этот код предназначен для запроса базы данных, а затем циклического вывода каждого продукта в свой собственный div:
$result = db_connection($query); while ($row = mysql_fetch_array($result)) { ?> <div class="box"><a href=""> <img src="http://www.electricbikehub.co.nz<?php echo $row['product_root_directory'] . $row['mid_size_image'] ?>"> <h2><?php echo $row['name']?></h2> <p><?php echo $row['description_brief'];?></p> <p><span class="multiple_product_red"><span class="multiple_product_linethrough">RRP: <?php echo $row['list_price']; ?>.</span> Our discounted price: <?php echo $row['our_price']; ?>. Includes delivery and GST.</span></p> </a> </div> <?php } ?>
Как видите, 3-я строка говорит href = "", но фактическая ссылка, сгенерированная, является текущей страницей (в данном случае « http://www.electricbikehub.co.nz/?page_id=1192 »). Если я добавлю что-нибудь в href, например href = "something", он просто добавит его в конец, то есть http://www.electricbikehub.co.nz/?page_id=1192что-то .
Любая помощь будет принята с благодарностью!
Вот как браузер интерпретирует и пуст href. Предполагается, что вы хотите вернуться на страницу, на которой вы находитесь. Это то же самое, что если вы не назначаете действие элементу <form>
.
Если вы добавите какое-либо слово в href, оно добавит его на текущую страницу, если вы:
/
перед ней, чтобы она добавила ее в ваш базовый url, например http://www.whatever.com/something
#
в этом случае это привязка на странице EDIT: Было предложено добавить ссылку, чтобы помочь прояснить ситуацию. Я нашел следующий сайт, который, по моему мнению, действительно хорошо объясняет атрибут href
тегов привязки и как он интерпретирует пути URL. Это не невероятно технично и очень понятно для человека. Он использует множество примеров, чтобы проиллюстрировать различия между типами путей: http://www.mediacollege.com/internet/html/hyperlinks.html
Добавить http: // перед URL-адресом
некорректный
<a href="www.example.com">www.example.com</span></p>
Верный
<a href="http://www.example.com">www.example.com</span></p>
если вы хотите перенаправить его на какой-либо другой URL-адрес, дайте google.com, а затем сделайте так, чтобы он был рад помочь другим, говорит rikin <a href="//google.com">happy to help other says rikin</a>
это удалит собственный URL-адрес сайта href.
Вы понимаете, что это поведение по умолчанию, правильно? если вы добавите / что-то, результаты будут разными.
вы можете сделать несколько вещей, чтобы предотвратить поведение по умолчанию.
href = "#" не будет делать ничего, кроме якоря – не лучшее решение, так как оно может перейти на верх страницы.
HREF = "JavaScript: недействительным (0);" ничего не сделает и совершенно законно.
href = "your-actual-purpose-link", очевидно, лучший. Если вы не хотите, чтобы тег куда-то уходил, зачем вообще использовать тег?
В любом случае ваш код будет генерировать недопустимую разметку: вы не должны обертывать содержимое блока в ссылку. теги не работают так. Если вам нужен этот эффект, вы должны использовать js или создать абсолютно позиционированную ссылку над содержимым (z-index). Подробнее об этом здесь: Сделайте div в ссылку .
Вы должны убедиться, что вы проверяете свой код при его визуализации: http://validator.w3.org
Использовать это:
<a href="<?php echo(($_SERVER['HTTPS'] ? 'https://' : 'http://').$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]); ?>">Whatever</a>
Он создаст HREF, используя текущий URL-адрес …