回声在PHP代码中

时间:2014-12-14 10:45:31

标签: php wordpress-plugin echo wordpress

我有一个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(); ?>

2 个答案:

答案 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_metafalsy。有意吗?如果那时唯一不同的是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不被解释为函数。