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番目に呼び出されるため、%5 $ sプレースホルダーの代わりに、この値を次のスパンタグに配置する必要があります。

<span>%5$s</span>

問題は、このスパンでページを実行しようとすると、値:Views:のみが表示されますが、get_PostViews()関数の出力は表示されないことです。

元の行の代わりに:

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

私はこの行を使用します:

sprintf(get_PostViews(get_the_ID())),

うまく機能しますが、説明テキスト「ビュー:」を事前に追加することはできません。

なんで?「Views」テキストの後にget_PostViews関数の戻り値を出力するにはどうすればよいですか?

Tnx

アンドレア

4

2 に答える 2

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

の最初の引数にsprintfは、次の引数のプレースホルダーが含まれている必要があります。「%d」形式はsprintf、これがinteger

この方法の詳細はこちら

于 2013-03-25T18:16:25.203 に答える
0

ハンクが言ったように、あなたはあなたのテキストの中のプレースホルダーを逃しました。

これを行うこともできるので、テキスト内で同じプレースホルダーを複数回使用できます。

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