【问题标题】:Trying to get WordPress PHP inside of HTML echo statement试图在 HTML echo 语句中获取 WordPress PHP
【发布时间】:2019-05-26 16:51:28
【问题描述】:

在阅读了许多 SO 文章后,我认为我是正确的,但我不断收到错误消息。基本上,在我的 content.php 页面模板中,我想根据您是在存档页面还是单个帖子页面上显示不同的文章标签。所以我一直在做这样的事情:

<?php if ( is_archive() ) {
    echo '<article id="post-' . the_ID() . '">';
        } else {
    echo '<article id="post-' . the_ID() . ' . "post_class() . '">';
}
?>

但是这里发生的不是它在页面上吐出 ID,所以生成的 HTML 看起来像这样:

1234<article id="post-">Content Goes Here</article>

什么时候应该……

<article id="post-1234">Content Goes Here</article>

那为什么显示不正确呢?

【问题讨论】:

  • 我使用这样的代码更接近了: echo '
    ';所以类代码出现了,但又一次出现在归档标签之外。所以这是一团糟。

标签: php html wordpress echo


【解决方案1】:

the_ID()(以及许多其他 WP 函数)有一个变体 get_the_ID(),你会想在这里使用。 the_ID() 在内部做自己的回声; get_the_ID() 返回它。

【讨论】:

    【解决方案2】:

    只需将您的代码修改为:the_ID() 默认情况下 echo 参数为 true,因此它会打印 id,但 get_the_ID() 返回与您的 html 代码连接的 ID。您可以点击here获取更多详情。并且还在 post_class() 函数之后从 else 部分删除了双引号。

    <?php if ( is_archive() ) {
        echo '<article id="post-' . get_the_ID() . '">';
            } else {
        echo '<article id="post-' . get_the_ID() . '". post_class() .'>';
    }
    ?>
    

    【讨论】:

    • 我看到了,但是在添加了该代码之后,我收到了另一个错误,该代码以前很好。错误是:解析错误:语法错误,第 19 行 /www/webroot/mysite/wordpress/wp-content/themes/orchestra/template-parts/content.php 中的意外 '', esc_url( get_permalink() ) ), '' ); ?>
    • 另外,如果我交换这两个 echo 语句,那么该错误会出现在第 14 行,这是当前第一个结尾没有 post_class() 的 echo 语句。
    • 是的,摆脱 . post_class() 。有效,但为什么呢?
    • ', esc_url( get_permalink() ) ), '' ); ?> 此行的错误是由于语法问题,与前一行无关。
    • post_class() 以破旧的方式添加。当您在 echo 语句中使用单引号和双引号时,您应该非常小心。关闭和打开应该以适当的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 2017-01-20
    • 2021-10-20
    • 1970-01-01
    相关资源
    最近更新 更多