특정 변수를 정의하는 functions.php 파일에 함수가 있습니다.범위 : 함수에서 정의 된 변수 사용
add_action('the_post', 'paginate_slide');
function paginate_slide($post) {
global $pages, $multipage, $numpages;
if(is_single() && get_post_type() == 'post') {
$multipage = 1;
$id = get_the_ID();
$custom = array();
$pages = array();
$i = 1;
foreach(get_post_custom_keys() as $key)
if (false !== strpos($key, 'slide'))
$custom[$key] = get_post_meta($id, $key, true);
while(isset($custom["slide{$i}-title"])) {
$page = '';
$tzTitle = $custom["slide{$i}-title"];
$tzImage = $custom["slide{$i}-image"];
$tzDesc = $custom["slide{$i}-desc"];
$tzEmbed = $custom["slide{$i}-embed"];
$page = "<h2>{$tzTitle}</h2><img src='{$tzImage}' />";
$pages[] = $page;
$i++;
}
$numpages = count($pages);
}
}
다음과 같은 template.php 파일에서 이러한 변수 중 일부를 출력하고 싶습니다. <?php echo $tzDesc; ?>
으로 보일 수는 없습니다. 그것을 작동 시키십시오. 내가 variables scope에 대해 이해 한 바에 따르면 이러한 변수를 다른 곳에서 호출하기 위해서는 전역 범위 내에서 변수를 정의하고 $pages, $multipage, $numpages;
처럼이 함수에서 전역 변수로 호출해야합니다. 그게 내가 필요한 곳에 그 변수들을 연결시켜 줄 수 있어야한다. 문제는 함수를 함수 밖으로 가져와 전역 함수 내에서 위에 정의 할 때 전체 함수가 작동을 멈출 때입니다.
사이트의 어느 곳에서나 <?php echo $tzDesc; ?>
을 호출하여 정의 된 정보를 반향시킬 수 있도록 어떻게 구조화해야합니까?
이것이 중요한지는 모르지만 이것은 WordPress 사이트에 있습니다.
$ post 객체에 추가하면 더 나은 해결책이 될 것입니다. 내가 어떻게 그럴 수 있니? 솔직히 말하면 $ post가 정의 된 곳이 어디인지 잘 모르겠습니다. 도움이된다면, 이것은 Wordpress 사이트에 있습니다. – mattz
'$ pages' -'$ pages [] = $ page;'를 어떻게 수정하는지와 매우 비슷합니다. 업데이트를보십시오. –
나는 그것을 시도하고 그것은'치명적인 오류 : 형식으로 stdClass의 객체를 배열로 사용할 수 없다 ... '라고 말했다. – mattz