我遇到了HTML和PHP混用的情况(至少对我来说是这样,因为我不是PHP专家)。当前,有一个我想使用PHP函数概括的硬编码URL。但是,这是我遇到的问题,因为这种混合变得相当复杂。
在花费了2个小时以上之后,我认为目前看来,在这个主题上浏览似乎并没有讨论此特定用例,并且反复试验并没有产生预期的效果结果。
在模板中,边栏有以下代码:
<h4>About <?php the_title(); ?> </h4>
<div id="about-this-waterfall-acf">
<?php
// First attempt HTML in PHP
$home_url = get_home_url();
echo '<div class="field-title"><a class="field-value rating" target="_blank" href=' . $home_url . '/rating-criteria/' . '>Rating:</a> <span class="rating">' . the_field('rating') . '</span></div>'; ?>
// Second attempt PHP in HTML
<div class="field-title"><a class="field-value rating" target="_blank" href="<$php $homeurl = get_home_url(); echo $homeurl; ?>/rating-criteria">Rating:</a> <span class="rating"><?php the_field('rating'); ?></span></div>
// The hard-coded URL that I'm trying to generalize
<div class="field-title"><a class="field-value difficulty" target="_blank" href="https://s1.temporary-access.com/~allacros/sandbox2/difficulty-criteria/">Difficulty:</a> <span class="difficulty"><?php the_field('difficulty'); ?></span></div>
...
此代码的结果可以在侧栏中的以下位置看到: https://s1.temporary-access.com/~allacros/sandbox2/california-switzer-falls.html
在该侧边栏中(英雄图像下方“关于Switzer瀑布”下方),您可以看到2个评分。 第一个具有正确的链接,但是格式设置已关闭,因为“ 2”不在应有的位置,并且未设置格式。 第二个格式正确,但链接错误。
有人知道我在做什么错吗?
谢谢
答案 0 :(得分:0)
对于第一行,看起来在函数the_field(“ rating”)中有“ echo”语句,这导致在执行“ echo”之前首先输出评级“ 2”。
第二行,“ $ php”处有错误,应该是“?php”。
答案 1 :(得分:0)
将第二条语句更改为以下内容:
<div class="field-title"><a class="field-value rating" target="_blank" href="<$php $homeurl = get_home_url(); echo $homeurl; ?>/rating-criteria">Rating:</a> <span class="rating"><?php echo the_field('rating'); ?></span></div>
答案 2 :(得分:0)
除了其他人提到的关于$的地方,a还可以?应该,您甚至可以通过对链接执行以下操作来简化自己。您所需要做的就是在开始时回显您创建的$ home_url变量。
<a href ="<?php echo $home_url . '/rating-criteria' ?>">link</a>
答案 3 :(得分:0)
真的很简单。您实际上不需要执行许多操作,而实际上只需要一行...
<h4>About <?php the_title(); ?> </h4>
<div id="about-this-waterfall-acf">
<div class="field-title">
<a class="field-value rating" target="_blank" href="<?php echo home_url(); ?>/rating-criteria/">Rating:</a>
<span class="rating"><?php the_field('rating'); ?></span>
</div>
现在,需要注意的事情...我将HTML分成多行,而不是尝试仅将其保留在一行上。由于静态HTML不需要通过PHP,因此我也将其全部从PHP处理中删除了。这将极大地清理它。
最后,如果您回头看一下代码,您正在回显the_field的返回值。这很可能是您的随机“ 2”来自何处。 the_field应该本身就是输出值,所以您不应该将它的返回值连接起来再输出。