stackoverflow的长期读者,但第一个问题。
我正在使用custom_functions.php文件中的Wordpress(特别是论文主题),我发现由于某种原因自动添加当前页面网址。例如,此代码用于查询数据库,然后循环输出其自己的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=1192something。
非常感谢任何帮助!
答案 0 :(得分:39)
这是浏览器解释和清空href的方式。它假设您想要链接回您所在的页面。这与您不为<form>
元素分配操作的情况相同。
如果你在href中添加任何单词,它会将它附加到当前页面,除非你:
/
,告诉它将其附加到您的基本网址,例如http://www.whatever.com/something
#
符号,在这种情况下,它是一个页内锚点 编辑:有人建议我添加一个链接以帮助澄清情况。我发现以下网站我认为非常好解释锚标记的href
属性以及它如何解释URL路径。它不是非常技术性和非常人性化的。它使用大量示例来说明路径类型之间的差异:http://www.mediacollege.com/internet/html/hyperlinks.html
答案 1 :(得分:16)
在网址前面添加http://
不正确的
<a href="www.example.com">www.example.com</span></p>
正确
<a href="http://www.example.com">www.example.com</span></p>
答案 2 :(得分:5)
如果您想将其重定向到其他网址,请google.com然后将其设为
happy to help other says rikin <a href="//google.com">happy to help other says rikin</a>
这将从href中删除自我网站网址。
答案 3 :(得分:1)
你确实意识到这是默认行为,对吧?如果你添加/某些东西,结果会有所不同。
你可以做很多事情来防止违约行为。
href="#"
除了锚之外什么都不做 - 不是最好的解决方案,因为它可能跳到页面顶部。
<a href="#">
href="javascript:void(0);"
什么都不做,完全合法。
<a href="javascript:void(0);"></a>
href="your-actual-intended-link"
(最佳)显然是最好的。
<a href="<your-actual-intended-link>"></a>
如果您不希望某个a
代码转到某处,为什么要使用a
代码?
答案 4 :(得分:0)
您可以将// //放在href中$ yourUrl的前面:
<a href="//<?=$yourUrl?>"></a>
答案 5 :(得分:0)
无论您是在本地服务器上开发还是在线开发,一种有效的解决方案是 在链接前面添加“ //”。这将有效地删除您当前所在站点的URL。
示例:
<a href="www.google.com">Google.com</a>
这将在输出http://localhost/mySite/currentPage/www.google.com
中您应该做的是这样:
<a href="//www.google.com">Google.com</a>
这将输出www.google.com
答案 6 :(得分:0)
e我也有同样的问题,就像之前的其他答案一样,但是当我尝试使用它时,它仍然向 URL 添加了越来越多的内容。所以我在我的代码中添加了一些东西。
从此:
<a href="//<?= $_SERVER['HTTP_HOST'] ?>something/about">about</a>
到:
<a href="///<?= $_SERVER['HTTP_HOST'] ?>something/about">about</a>
如果您注意到我在 href="///" 上添加了一个反斜杠 "/" 而不仅仅是使用了两个反斜杠
答案 7 :(得分:-2)
在任何情况下,您的代码都会生成无效标记:您不应该在链接中包含块内容。标签不能像这样工作。如果你想要这个效果,你应该使用js或在内容(z-index)上面创建一个绝对定位的链接。更多相关信息:Make a div into a link。
您应确保在呈现代码时验证代码:http://validator.w3.org
答案 8 :(得分:-4)
使用此:
<a href="<?php echo(($_SERVER['HTTPS'] ? 'https://' : 'http://').$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]); ?>">Whatever</a>
它将使用当前URL ...
创建HREF