i18n带有wp_kses()和printf()用于多个参数

时间:2016-08-19 17:21:50

标签: wordpress internationalization printf

我有一个如下字符串:

<?php
/** pre_wp_version() is to return version dynamically */
printf( __('<strong>Plugin Name</strong> requires WordPress core version <strong>%1$s</strong> or greater. The plugin has been <strong>deactivated</strong>. Consider <a href="%2$s">upgrading WordPress</a>.', 'plugin-text-domain' ), pre_wp_version(), admin_url('/update-core.php') );

我开始知道,它有缺陷,风险也很大。所以我想将wp_kses()用作stated in the Codex

Codex有一个如何实现它的例子:

<p>
<?php
$url = 'http://example.com';
$link = sprintf( wp_kses( __( 'Check out this link to my <a href="%s">website</a> made with WordPress.', 'my-text-domain' ), array(  'a' => array( 'href' => array() ) ) ), esc_url( $url ) );
echo $link;
?>
</p>

但是示例只显示了一个参数,但在我的情况下,我有printf()的多个参数。如何将wp_kses()与i18n函数的当前场景一起使用?

1 个答案:

答案 0 :(得分:-1)

解决方法如下:

printf( wp_kses( __('<strong>Plugin Name</strong> requires WordPress core version <strong>%1$s</strong> or greater. The plugin has been <strong>deactivated</strong>. Consider <a href="%2$s">upgrading WordPress</a>.', 'plugin-text-domain' ), array( 'a' => array('href' => array()), 'strong' => array() ) ), pre_wp_version(), admin_url('/update-core.php') );

虽然在制作中我减少了<strong>标签以便于翻译。

非常感谢任何下降解决方案。