0

我是 PHP 和 WordPress 的新手,我正在个性化现有的模板,但遇到以下问题。

在模板的function.php文件中,我具有以下功能:

function admired_posted_on() {
    printf( __( '<span class="sep">Posted on </span>
                 <a href="%1$s" title="%2$s" rel="bookmark">
                    <time class="entry-date" datetime="%3$s" pubdate>%4$s</time>
                 </a>
                 <span>%5$s</span>
                 <span class="by-author"> 
                    <span class="sep"> by bla</span> 
                    <span class="author vcard">
                        <a class="url fn n" href="%6$s" title="%7$s" rel="author">%8$s</a>
                    </span>
                 </span>
                 ', 'admired' ),

    esc_url( get_permalink() ),
    esc_attr( get_the_time() ),
    esc_attr( get_the_date( 'c' ) ),
    esc_html( get_the_date() ),
    sprintf('Views: ', get_PostViews(get_the_ID())),
    esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
    sprintf( esc_attr__( 'View all posts by %s', 'admired' ), get_the_author() ),
    esc_html( get_the_author() )
    );
}

正如你所看到的,这个函数创建了一些 HTML 代码,这些代码将打印在我的模板的特定部分(在循环内)。

好的,你可以看到这一行:

sprintf('Views: ', get_PostViews(get_the_ID())),

应该打印字符串“Views:”,后跟函数 get_the_ID() 返回的值(表示阅读帖子的人数)

正如你所看到的,这个函数是被调用函数列表中的第五个被调用函数,所以应该把这个值而不是%5$s占位符放在下面的 span 标签中:

<span>%5$s</span>

问题是我在这个范围内执行我的页面时只出现值:Views:但没有出现 get_PostViews() 函数的输出。

如果不是原始行:

sprintf('Views: ', get_PostViews(get_the_ID())),

我使用这条线:

sprintf(get_PostViews(get_the_ID())),

它工作得很好,但我不能预先附加解释文本:“视图:”

为什么?我该怎么做才能打印“视图”文本,然后是 get_PostViews 函数的返回值?

肿瘤坏死因子

安德烈亚

4

2 回答 2

1
sprintf('Views: %d', get_PostViews(get_the_ID()))

第一个参数sprintf应该包含以下参数的占位符,“%d”格式告诉sprintf这应该是integer

更多关于这个方法在这里

于 2013-03-25T18:16:25.203 回答
0

正如 hank 所提到的,您错过了文本中的占位符。

您也可以这样做,以便您可以在文本中多次使用同一个占位符。

sprintf('Views: %1$d', get_PostViews(get_the_ID()));
于 2013-03-25T18:27:06.860 回答