我正在使用的Wordpress插件使用php调用发票到期日:
<p><?php wpi_invoice_due_date2(); ?></p>
然后将其显示为一列
<p>Due Date: 10 May 2019</p>
我希望使其与模板的其余部分保持一致,并且要做到这一点,我需要在日期中添加一种样式,但是不确定如何实现。
我为插件创建了一个替代项,以允许我设置样式。
您将在下面看到,我在截止日期文本中添加了“”。但是,这与页面的其余部分不一致,更难的是此行和上面的行都包装在同一元素中。
我可能会修改使其正常工作,但是,我很想知道是否有解决此问题的方法。
if ( !function_exists('wpi_invoice_due_date') ) {
function wpi_invoice_due_date2( $args = "" ) {
global $invoice;
$defaults = array(
'return' => false,
'text' => __('<span class="duebold">Due Date:</span> ', ud_get_wp_invoice()->domain),
'format' => 'd F Y'
);
extract( wp_parse_args($args, $defaults) );
if ( empty( $invoice['due_date_year'] )
|| empty( $invoice['due_date_month'] )
|| empty( $invoice['due_date_day'] ) ) return;
if ( !$return ) {
echo $text.date($format, strtotime( $invoice['due_date_day'].'-'.$invoice['due_date_month'].'-'.$invoice['due_date_year'] ));
return;
}
return $text.date($format, strtotime( $invoice['due_date_day'].'-'.$invoice['due_date_month'].'-'.$invoice['due_date_year'] ));
}
我在这一行中添加了跨度:
'text' => __('<span class="duebold">Due Date:</span> ', ud_get_wp_invoice()->domain),
但是,我想更改的是到期日之后的内容
目前我有
发票编号: 1111111
发票金额:£120.00
到期日期: 2019年3月1日
理想情况下,我想要
发票编号: 1111111
发票金额:£120.00
到期日: 2019年3月1日
答案 0 :(得分:0)
从文本中删除<span>
标签,然后使用sprintf
在日期前后添加标签:
if ( !function_exists('wpi_invoice_due_date') ) {
function wpi_invoice_due_date2( $args = "" ) {
global $invoice;
$defaults = array(
'return' => false,
'text' => __('Due Date: ', ud_get_wp_invoice()->domain),
'format' => 'd F Y'
);
extract( wp_parse_args($args, $defaults) );
if ( empty( $invoice['due_date_year'] )
|| empty( $invoice['due_date_month'] )
|| empty( $invoice['due_date_day'] ) ) return;
$text.= sprintf(
"<span class='duebold'>%s</span>",
date($format, strtotime( $invoice['due_date_day'].'-'.$invoice['due_date_month'].'-'.$invoice['due_date_year'] )));
if ( !$return ) {
echo $text;
return;
}
return $text;
}
请永远不要将HTML传递给__()
函数,您总可以找到一种在字符串内插入HTML标记并使用__()
仅检索所需文本的方法。文本字符串中的HTML使得翻译它们变得更加困难,并且容易出错。如果您不需要翻译,只需使用纯文本即可。