PHP语法问题

时间:2011-05-24 15:45:07

标签: php wordpress

我正在尝试使用2个变量一起获取链接,但输出是链接和标题,但没有出现html / clickable链接。

我正在收到一些链接:

http://www.mydomain.com/post1/post_title_here

以下是代码:

echo '<a href="'.the_permalink().'">'.the_title().'</a>';

有人可以帮忙吗?

由于

更新:

以下是整个代码块:

<div id="MyBlock1">
        <?php
            $query = new WP_Query('posts_per_page=5');

             while( $query ->have_posts() ) : $query ->the_post();
                 echo '<li>';
                 echo '<a href="'.the_permalink().'">'.the_title().'</a>';
                 echo '</li>';
             endwhile;

            wp_reset_postdata();

        ?>
    </div>

5 个答案:

答案 0 :(得分:5)

这是因为wordpress函数the_permalink()the_title()显示了各自的结果,它们不需要回应。如果您想要返回值的函数,则必须使用get_permalink()get_the_title()

所以要么:

<div id="MyBlock1">
    <?php
        $query = new WP_Query('posts_per_page=5');
        while( $query ->have_posts() ) : $query ->the_post();
            echo '<li>';
            echo '<a href="'.get_permalink().'">'.get_the_title().'</a>';
            echo '</li>';
        endwhile;
        wp_reset_postdata();
   ?>
</div>

<div id="MyBlock1">
    <?php
        $query = new WP_Query('posts_per_page=5');
        while( $query ->have_posts() ) : $query ->the_post();
            echo '<li><a href="';
            the_permalink();
            echo '">';
            the_title();
            echo '</a></li>';
        endwhile;
        wp_reset_postdata();
   ?>
</div>

两者都有效。

答案 1 :(得分:2)

以下是调试清单:

1。)the_title()是否返回一个空字符串? (您可以通过查看html源来查看)

2。)你是否在身体标签的内部回应?

3。)这是否隐藏在一个隐藏的html元素中?

答案 2 :(得分:2)

echo '<a href="'.the_permalink().'">'.the_title().'</a>';

在这种情况下,您需要使用get_permalink代替the_permalinkget_the_title代替the_title

echo '<a href="'.get_permalink().'">'.get_the_title().'</a>';

WordPress the_*函数执行直接echo调用,而get_*函数返回一个可用于进一步处理的值,例如您正在进行的连接。

(还要注意不一致的命名约定 - 这可能很痛苦)

答案 3 :(得分:2)

您可以使用相应的get_ *版本:

echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>';

请参阅codex reference了解更多

答案 4 :(得分:0)

您需要绝对确保.the_title().明确地设置了一个值。如果不是,则不会显示HTML,因为锚标记没有文本。只是一个想法(我做了很多次,尝试print_f(); the_title()。希望它有所帮助。