我有一个wordpress网站,我在以下代码中收到错误。
<a href="http://www.example.com/<?php $url = get_post_meta($post->ID, 'Monthly Fee', true); if ($url) { echo "rent2?domain=<?php the_title(); ?>&monthlyfee=$url";} else echo "rent?domain=<?php the_title(); ?>&monthlyfee=$url";?>">
以下命令在echo命令中不起作用。结果只有文字。
<?php the_title(); ?>
答案 0 :(得分:1)
这不是答案,而是基于19年经验的建议。
你的问题要大得多 - 代码凌乱:
不要试图将所有逻辑塞进一行。使您的代码可读。你以后会感谢自己。使用适当的变量名称。
<?php
$post_meta = get_post_meta($post->ID, 'Monthly Fee', true);
if ($post_meta) {
$url = "rent2?domain=" . the_title() . "&monthlyfee=$post_meta";
} else {
$url = "rent?domain=" . the_title() . "&monthlyfee=$post_meta";
}
?>
<a href="http://www.example.com/<?php echo $url; ?>">
上面的代码(应该是)在功能上与你的相同。但是您可以看到有些内容会被写入?domain=" . the_title() . "&monthlyfee=$post_meta
两次else
块$post_meta
(以前为$ url),而$post_meta
为falsy
。有意吗?如果那时唯一不同的是rent
vs rent2
。您的代码可以DRY像这样:
<?php
$post_meta = get_post_meta($post->ID, 'Monthly Fee', true);
$search_string = "?domain=" . the_title() . "&monthlyfee=$post_meta";
$path = $post_meta ? "rent2" : "rent";
$url = $path . $search_string;
?>
PS。正如Dre指出the_title()
不应该做任何echo
但返回标题字符串!谢谢
<a href="http://www.example.com/<?php echo $url; ?>">
答案 1 :(得分:-1)
hon2a已经在评论中给出了答案。您的代码格式错误。因为部分
echo "...<?php the_title(); ?>..."
放在一个字符串中,the_title不被解释为函数。