0

私は PHP World の初心者で、WordPress テンプレートをカスタマイズしています。

私は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>BLABLA</span>
                 <span class="by-author"> 
                    <span class="sep"> by bla</span> 
                    <span class="author vcard">
                        <a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$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() ),
    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() )
    );
    }

ここで、「BLABLA」テキストの代わりに、次の PHP コードをBLABLAタグにprintf本体内に挿入する必要があります。これは、挿入する必要がある php コードです。

<?php echo '(' . get_PostViews(get_the_ID()) . ')'; ?>

この行を前の span タグに挿入すると、エラーが発生します。

get_PostViews(get_the_ID()) は、そのスパンに表示する必要がある整数を返します

誰かが私を助けることができますか?

4

2 に答える 2

0

一重引用符'で囲まれた文字列に一重引用符がある場合は、その引用符をエスケープする必要があります。このように ( に注意してください\'):

$string = '<span class="sep">Posted on <?php echo \'(\' . get_PostViews(get_the_ID()) . \')\'; ?></span>... more content ....';

しかし、あなたの例では、次の解決策はより簡単かもしれません:

$string = '<span class="sep">Posted on (<?php echo get_PostViews(get_the_ID()); ?>)</span>... more content ....';
于 2013-03-24T23:39:56.293 に答える
0

関数の代替方法を次に示します。

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

追加の回答:

あなたの質問に答えるには、1 行で表示した方が簡単かもしれません。

printf('First Var: %1$s | Second Var: %2$s | Third Var: %3$s', $firstvar, $secondvar, $thirdvar);

%1$s は、引用されたテキストの後にリストされている後続の変数のプレースホルダーです。

この同じ情報は同じ方法で表示できますが、元の投稿とは異なる間隔で表示されます

printf('First Var: %1$s | Second Var: %2$s | Third Var: %3$s', 
    $firstvar, 
    $secondvar, 
    $thirdvar
);

また、テキストの前にアンダースコアを追加すると、テキストを複数の言語に翻訳できます (これは Wordpress 内の機能です)。「admired」を含むコンマは、翻訳方法を探す場所である賞賛されたテーマ識別子を示します。

printf(__('First Var: %1$s | Second Var: %2$s | Third Var: %3$s', 'admired'), 
    $firstvar, 
    $secondvar, 
    $thirdvar
);
于 2013-03-25T04:06:50.017 に答える