How do I wrap this?

时间:2019-04-18 作者:Effection

我截取了一些PHP代码,我想用do\\u shortcode函数将其打包到PHP文件中。不幸的是,我不知道该怎么做。我尝试的几种方法最终在页面上出错。

这是我想要包装的代码:

<?php echo the_aiovg_player( $attributes[\'id\'] ); ?>
这是应该覆盖它的包装短代码:

[pc-pvt-content allow="all" block="" warning="1" message="1" login_lb="" registr_lb=""][/pc-pvt-content]
所以最后应该是这样的:

[pc-pvt-content allow="all" block="" warning="1" message="1" login_lb="" registr_lb=""]<?php echo the_aiovg_player( $attributes[\'id\'] ); ?>[/pc-pvt-content]
如何在php代码中实现它?

1 个回复
SO网友:Antti Koskinen

如果pc-pvt-content 支持嵌套的短代码,那么我想您可以the_aiovg_player() 在自定义短代码中。像这样的,

// In your theme functions.php
if ( ! shortcode_exists( \'the_aiovg_player\' ) && function_exists( \'the_aiovg_player\' ) ) {
  function myprefix_the_aiovg_player_shortocode( $atts ) {
    $id = ( ! empty( $atts[\'id\'] ) && is_numeric( $atts[\'id\'] ) ) ? intval( $atts[\'id\'] ): 0;
    if ( ! $id ) {
      return \'\';
    }
    return the_aiovg_player( $id );
  }
  add_shortcode( \'the_aiovg_player\', \'myprefix_the_aiovg_player_shortocode\' );
}
然后你可以使用这样的自定义短代码,

[pc-pvt-content ..attributes.. ][the_aiovg_player id="123"][/pc-pvt-content]