【发布时间】:2019-01-31 16:47:52
【问题描述】:
我在我的 function.php 中创建了一个函数来检索一些变量。明确一点,在我的项目开始时,我把这些变量放在我的模板中,它们工作得很好,但是我想写更好的代码,所以我想重写我的代码,放入 function.php 文件然后调用在我的模板中打印值的函数。
所以现在我的方法不同了,这是我的例子:
function programpagedata() {
global $post;
$url = $_SERVER['REQUEST_URI'];
$path = parse_url($url, PHP_URL_PATH);
$segments = explode('/', rtrim($path, '/'));
$campus = $segments[1];
$prog_parent = get_field('program_parent');
$prog_code = get_field('program_code');
$program_parent = $post->post_parent;
$prog_par_details = get_field('program_code', $program_parent );
if( $prog_parent == true ) {
$program = $prog_code;
} else {
$program = $prog_par_details;
}
return array($program, $campus);
}
在我的模板中,我以这种方式调用函数:
<?php
programpagedata();
echo $program;
echo $campus;
?>
例如,在我的模板中,我可以通过这种方式调用这些函数:
<div class="form-group">
<label for="program">
<input type="hidden" class="form-control" id="program" aria-describedby="programHelp" placeholder="Program" value="<?php echo $program; ?>" name="program">
</label>
</div>
<div class="form-group">
<label for="campus">
<input type="hidden" class="form-control" id="campus" aria-describedby="campusHelp" placeholder="Campus" value="<?php echo $campus; ?>" name="campus">
</label>
</div>
我试图了解我的错误在哪里,因为正如我所说,如果我将这个 PHP sn-p 放在我的模板中,代码可以正常工作,但有一个重要区别:
模板中的 PHP
<?php
global $post;
$url = $_SERVER['REQUEST_URI'];
$path = parse_url($url, PHP_URL_PATH);
$segments = explode('/', rtrim($path, '/'));
$campus = $segments[1];
// $program = end($segments);
$prog_parent = get_field('program_parent');
$prog_code = get_field('program_code');
$program_parent = $post->post_parent;
$prog_par_details = get_field('program_code', $program_parent );
if( $prog_parent == true ) {
$program = $prog_code;
} else {
$program = $prog_par_details;
}
?>
<form>
my template form
</form>
?>
我不返回任何东西。所以我想我正在为 WP 上的 return 关键字而苦苦挣扎。有什么想法吗?
【问题讨论】:
标签: php arrays wordpress return