Php 从插件文件调用变量';s函数

Php 从插件文件调用变量';s函数,php,wordpress,function,plugins,Php,Wordpress,Function,Plugins,这与WordPress有关,但是一个一般性问题 我使用的插件有一个函数,其中包含一个我想在模板中使用的变量,但我不知道如何调用该变量。单独使用echo命令,什么也看不出来。函数类(如果需要)是class_wpp_property_import,我需要的变量是$import_time这是实际函数: static public function wpp_publish_box_options( $id ) { global $post, $wp_properties; if( !$wpp_im

这与WordPress有关,但是一个一般性问题

我使用的插件有一个函数,其中包含一个我想在模板中使用的变量,但我不知道如何调用该变量。单独使用echo命令,什么也看不出来。函数类(如果需要)是class_wpp_property_import,我需要的变量是$import_time这是实际函数:

  static public function wpp_publish_box_options( $id ) {
global $post, $wp_properties;

if( !$wpp_import_schedule_id = get_post_meta( $post->ID, 'wpp_import_schedule_id', true ) ) {
  return;
}

//** Get time stamp from new format ( Version 2.6.0+ ) */
$import_time = get_post_meta( $post->ID, 'wpp_import_time', true );

//** Get time stamp from old meta_key ( pre-version 2.6.0 ) if new meta_key does not exist */
if( empty( $import_time ) ) {
  $import_time = get_post_meta( $post->ID, 'wpp_xml_import', true );
}

$import_url = admin_url( "edit.php?post_type=property&page=wpp_property_import#{$wpp_import_schedule_id}" );

$import_name = $wp_properties[ 'configuration' ][ 'feature_settings' ][ 'property_import' ][ 'schedules' ][ $wpp_import_schedule_id ][ 'name' ];

$disable_update = get_post_meta( $post->ID, 'wpp::disable_xmli_update', true );
$text = __( 'Ignore updates on XMLI process', ud_get_wpp_importer()->domain );

if( !empty( $import_time ) ) {
  $import_time = date_i18n( __( 'M j, Y @ G:i', ud_get_wpp_importer()->domain ), strtotime( $import_time ) );
  ?>

  <div class="misc-pub-section-last">
    <?php echo WPP_F::checkbox( "name=wpp::disable_xmli_update&id=wpp_xmli_disable_update&label=$text", $disable_update ); ?>
  </div>

  <div class="misc-pub-section xml_import_time misc-pub-section-last">
    <span class="wpp_i_time_stamp"><?php printf( __( 'Imported on: <b>%1$s</b> <a href="%2$s" title="%3$s">Importer</a>', ud_get_wpp_importer()->domain ), $import_time, $import_url, $import_name ); ?>
      <b></b></span>
  </div>
<?php
}
静态公共函数wpp\u发布框\u选项($id){
全球$post,$wp_物业;
如果(!$wpp\u import\u schedule\u id=get\u post\u meta($post->id,'wpp\u import\u schedule\u id',true)){
返回;
}
//**从新格式(版本2.6.0+)获取时间戳*/
$import\u time=get\u post\u meta($post->ID,'wpp\u import\u time',true);
//**如果新meta_密钥不存在,则从旧meta_密钥(2.6.0之前的版本)获取时间戳*/
if(空($import_time)){
$import\u time=get\u post\u meta($post->ID,'wpp\u xml\u import',true);
}
$import_url=admin_url(“edit.php?post_type=property&page=wpp_property_import{$wpp_import_schedule_id}”);
$import\u name=$wp\u properties['configuration']['feature\u settings']['property\u import']['schedules']['schedules'][$wpp\u import\u schedule\u id]['name'];
$disable_update=get_post_meta($post->ID,'wpp::disable_xmli_update',true);
$text=uuu('Ignore updates on XMLI process',ud_get_wpp_importer()->domain);
如果(!空($import\u time)){
$import_time=date_i18n('mj,Y@G:i',ud_get_wpp_importer()->域),strottime($import_time));
?>

关于变量作用域的文档将比我能更好地解释这一点,有关更多详细信息,请参阅,但要点如下:

变量的作用域是定义变量的上下文。大多数情况下,所有PHP变量都只有一个作用域。这个作用域也跨越包含的文件和必需的文件

但是,PHP允许您使用
global
关键字滥用作用域。它的名称有误导性,基本上它允许您将当前作用域之外定义的变量导入当前作用域。
$import\u time
需要一个
$post
,应该在模板页面上可用,因此调用
global$post
在我们的功能中应该允许我们访问它

调用
global$import\u time
不起作用,因为它没有像
$post
那样定义为“全局”(字面上,高于一切)

//在functions.php中,或任何您想要的地方
函数convertImportTime(?string$import\u time,string$format='mj,Y@G:i'):?string
{
如果(!$import\u时间){
返回null;
}
返回日期\u i18n(
__($format,ud_get_wpp_importer()->域),
strotime($import\u时间)
); 
}
函数getImportTime():?字符串
{
全球$员额;
如果(!$post){
返回null;
}
$import\u time=get\u post\u meta($post->ID,'wpp\u import\u time',true);
如果(!$import\u时间){
$import\u time=get\u post\u meta($post->ID,'wpp\u xml\u import',true);
}
返回convertImportTime($import\u time);
}
//template.php

谢谢你这么详细的回答!好吧-我想我到了!我实际上得到了一个输出。我得到了一个数字字符串:1620336825,而不是日期,它可能与初始函数“if(!empty($import_time)){$import_time=datei18n(uu('m j,Y@G:I',ud u get_wpp)importer()->domain),strottime”部分有关($import_time));?>“是的,我想正是这样。我会更新以包括这一点。如果可以的话,我会送你几盒酒。你太棒了。很乐意帮忙。祝你的项目好运。我刚刚意识到这一年是错误的。每一年都有不同的年份。很遥远,比如4021年,等等。