PHP 语法问题

发布于 2024-11-09 11:11:10 字数 814 浏览 1 评论 0原文

我试图使用 2 个变量将链接放在一起,但输出是链接和标题,但没有出现 html/可点击链接。

我收到以下链接:

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>

I am trying to get a link together using 2 variables but the output is the link and title but no html / clickable link appearing.

I'm getting something link this:

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

Here is the code:

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

Can anyone help please?

Thanks

UPDATE:

Here's the whole block of code:

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

荒岛晴空 2024-11-16 11:11:10

这是因为 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>

两者都有效。

That's because the wordpress functions the_permalink() and the_title() display the respective outcomes already they need not be echoed. If you want functions that return the values, you have to use get_permalink() and get_the_title() instead.

So either do:

<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>

or

<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>

Both will work.

木格 2024-11-16 11:11:10

以下是调试清单:

1.) the_title() 是否返回空字符串? (您可以通过查看 html 源代码进行检查)

2.)您是否在 body 标记内呼应了此内容?

3.) 这是否在隐藏的 html 元素中得到回应?

Here's a checklist for debugging:

1.) Is the_title() returning an empty string? (You can check by looking at the html source)

2.) Are you echoing this inside of the body tag?

3.) Is this being echoed in a hidden html element?

趁年轻赶紧闹 2024-11-16 11:11:10
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_* 函数返回一个可用于进一步处理的值,例如串联你正在做的。

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

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

In this sort of situation, you'll want to use get_permalink instead of the_permalink and get_the_title instead of the_title.

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

WordPress the_* functions do a direct echo call, whereas the get_* functions return a value that you can use for further processing, like the concatenation you're doing.

(also note the inconsistent naming conventions - this can be a pain)

佼人 2024-11-16 11:11:10

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

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

有关更多信息,请参阅 codex 参考

You could use the corresponding get_* versions:

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

See the codex reference for more

请爱~陌生人 2024-11-16 11:11:10

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

You need to absolutely make sure that .the_title(). is definately bieng set a value. If it isn't, then there will be no displayed HTML as there is no text for the anchor tag. Just a thought (i've done it many times, try print_f(); ing the the_title(). Hope it helped.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文