为什么在同一函数内回显局部变量不起作用?

时间:2017-09-03 08:38:51

标签: php wordpress wordpress-theming

在流动的代码中:(见下)

我定义了一个名为post_author_nickname

的局部变量

为什么我不能在与HTML echo相同的功能中使用它?

我直接使用该功能而不是将其分配给变量

守则

function head_scripts() {
    $options = get_option( 'ps_plugindev' );
    if ( isset( $options['twitter'] ) && !is_admin() ) {
            $post_id = get_queried_object_id();
            $post_author_id = get_post_field( 'post_author', $post_id );
              $post_author_nickname =  the_author_meta( 'nickname', $post_author_id );
            ?>
            <script type="text/javascript">
                function setT() {
                    var b = document.createElement('a');
                    b.classList += "twitter-share-button";
                    b.setAttribute("data-text",  "<?php echo $post_author_nickname ?>" );
                };
            </script>
        <?php
}
"< ? php echo $post_author_nickname; ? >"

不工作

"< ? php echo the_author_meta( 'nickname', $post_author_id ); ? > " 

工作

编辑1:

感谢@mario建议阅读问题 What is the difference between get_the_* and the_* template tags in wordpress? - Stack Overflow 但我不明白答案是什么?或者它是如何相关的

编辑2:

我检查了

注意:我不熟悉php(10%)并且仅用于wordpress我的背景是在c#

编辑3:

在阅读@mario建议后anser  多次我得到它。

Gauravanser更改

时出现Gaurav
$post_author_nickname =  the_author_meta( 'nickname', $post_author_id );

$post_author_nickname =  get_the_author_meta( 'nickname', $post_author_id );

我没有注意到 获取前缀与功能名称之间的区别&#39;

现在我明白了

通常,我删除了标记为重复的问题。

如果像我这样的人没有得到它,我会留下这个说明。

感谢@mario和{{3}}

1 个答案:

答案 0 :(得分:1)

使用此功能代替the_author_meta。

get_the_author_meta()

https://developer.wordpress.org/reference/functions/get_the_author_meta/