2013-03-25 50 views
0

我是PHP和WordPress中的新成員,我正在個性化現有模板,並且遇到以下問題。將函數調用到sprintf中的一些問題()

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())), 

應打印字符串「的看法:」其次是由函數get_the_ID(返回的值)(即rappresent,上面寫着一個帖子的人的數量)

正如你可以看到這個功能是第五稱爲調用函數的列表,因此這個值應該放在代替%5 $ S佔位符,爲以下span標籤:

<span>%5$s</span> 

問題是,我在這個範圍內執行我的頁面時,只會出現下面的值:Views:但是不會出現get_PostViews()函數的輸出。

如果不是原線路:

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

我用這條線:

sprintf(get_PostViews(get_the_ID())), 

它工作得很好,但讓我無法preappend的文本解釋: 「查看:」

爲什麼?我能做些什麼來打印「視圖」文本,然後是我的get_PostViews函數的返回值?

TNX

安德烈

回答

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

的第一個參數sprintf應包含以下參數佔位符,在 「%d」 的形式告訴sprintf,這應該是一個integer

More about this method here

0

正如hank所提到的,你錯過了tex中的佔位符噸。

您也可以這樣做,以便您可以在文本中多次使用相同的佔位符。

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