将跨度和类添加到PHP数组

时间:2019-02-03 18:04:55

标签: php wordpress

我正在使用的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日

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

sprintf Documentation

个人笔记:

请永远不要将HTML传递给__()函数,您总可以找到一种在字符串内插入HTML标记并使用__()仅检索所需文本的方法。文本字符串中的HTML使得翻译它们变得更加困难,并且容易出错。如果您不需要翻译,只需使用纯文本即可。