个性化阅读
专注于IT技术分析

如何将此php指令插入printf结果?

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

现在, 我必须在printf主体内部将以下php代码插入BLABLA标记中, 而不是” BLABLA”文本中。这是我必须插入的php代码:

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

如果我将ithis行插入上一个span标签, 则会出错。

get_PostViews(get_the_ID())返回一个必须在该范围内显示的整数

有人可以帮我吗?


#1


如果在用单引号引起来的字符串中有单引号’, 则必须转义该引号。像这样(注意\’):

$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 ....';

#2


这是你的功能的替代方法。

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

附加答案:

要回答你的问题, 如果你在一行中看到它, 这可能会更容易。

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中的功能), 并且带有”钦佩”的逗号仅表示钦佩主题标识符, 它将在其中寻找翻译方法。

printf(__('First Var: %1$s | Second Var: %2$s | Third Var: %3$s', 'admired'), $firstvar, $secondvar, $thirdvar
);
赞(0)
未经允许不得转载:srcmini » 如何将此php指令插入printf结果?

评论 抢沙发

评论前必须登录!