在函数中调用变量

时间:2014-09-18 06:36:24

标签: php wordpress

我有name.PHP文件,其中包含以下代码:

<?php  $trans=pll_e('All Products'); ?>

此处pll_e('All Products')是一个插件的功能,对翻译字符串非常有用。如果语言为英语,则代码会将输出设为All Products,否则会输出Other language

在该name.PHP文件中,有功能。

该功能的代码:

function catalogue() {

if($count>0){
        $return_string .= '<li class="wpc-category ' . $class . '"><a href="'. get_option('catalogue_page_url') .'">All Products</a></li>'; 
        foreach($termsCatSort as $term){
            if($term_slug==$term->slug){
            $class  =   'active-wpc-cat';
        }else{
            $class  =   '';
        }
        $return_string .=  '<li class="wpc-category '. $class .'"><a href="'.get_term_link($term->slug, 'wpccategories').'">'. $term->name .'</a></li>';    
        }
    }else{
        $return_string .=  '<li class="wpc-category"><a href="#">No category</a></li>'; 
    }
}

我想在功能中使用$trans代替所有产品。我该怎么做?

6 个答案:

答案 0 :(得分:0)

$trans=pll_e('All Products');

function catalogue($trans) {

  if($count>0){
    $return_string .= '<li class="wpc-category ' . $class . '"><a href="'. get_option('catalogue_page_url') .'">'.$trans.'</a></li>'; 
    foreach($termsCatSort as $term){
        if($term_slug==$term->slug){
        $class  =   'active-wpc-cat';
    }else{
        $class  =   '';
    }
    $return_string .=  '<li class="wpc-category '. $class .'"><a href="'.get_term_link($term->slug, 'wpccategories').'">'. $term->name .'</a></li>';    
    }
  }else{
    $return_string .=  '<li class="wpc-category"><a href="#">No category</a></li>'; 
  }
}

答案 1 :(得分:0)

您可以将变量传递给函数:

function catalogue($trans) {
  echo $trans;
}

或者您可以使用&#34; global&#34;:

在函数中访问变量
function catalogue() {
  global $trans;
  echo $trans;
}

答案 2 :(得分:0)

如果在函数之前定义了$ trans,则可以按如下方式传递它。

function catalogue($trans) 
{
  if($count>0)
  {
    $return_string .= '<li class="wpc-category ' . $class . '"><a href="'. get_option('catalogue_page_url') .'">'.$trans.'</a></li>'; 
    foreach($termsCatSort as $term)
    {
        if($term_slug==$term->slug)
        {
          $class  =   'active-wpc-cat';
        }else{
          $class  =   '';
        }
        $return_string .=  '<li class="wpc-category '. $class .'"><a href="'.get_term_link($term->slug, 'wpccategories').'">'. $term->name .'</a></li>';    
    }
  }
  else
  {
     $return_string .=  '<li class="wpc-category"><a href="#">No category</a></li>'; 
  }
}

答案 3 :(得分:0)

变量中的每个可翻译字符串中都没有字符串,只是因此您​​可以稍后使用它。只需在需要的地方调用翻译功能。

$return_string .= '<li class="wpc-category ' . $class . '"><a href="'. get_option('catalogue_page_url') .'">'. pll_e('All Products') . '</a></li>'; 
// ...
$return_string .=  '<li class="wpc-category"><a href="#">' . pll_e('No category') . '</a></li>'; 

答案 4 :(得分:0)

我在使用插件的默认选项时犯了错误。

我使用的是pll_e('All Products'),但是当我使用pll__('All Products')时,它就有效了。

答案 5 :(得分:-1)

你可以描述函数的params,如果没有传递参数,也可以有默认值

function catalogue($trans = 'All Products') {

if($count>0){
        $return_string .= '<li class="wpc-category ' . $class . '"><a href="'. get_option('catalogue_page_url') .'">'.$trans.'</a></li>'; 
        foreach($termsCatSort as $term){
            if($term_slug==$term->slug){
            $class  =   'active-wpc-cat';
        }else{
            $class  =   '';
        }
        $return_string .=  '<li class="wpc-category '. $class .'"><a href="'.get_term_link($term->slug, 'wpccategories').'">'. $term->name .'</a></li>';    
        }
    }else{
        $return_string .=  '<li class="wpc-category"><a href="#">No category</a></li>'; 
    }
}

所以,如果你这样做:

catalogue(); // All Products will be used

其他

$trans=pll_e('All Products');
catalogue($trans);

但你也可以在不传递参数的情况下使用函数

function catalogue() {

    if($count>0){

        $trans = pll_e('All Products');

        $return_string .= '<li class="wpc-category ' . $class . '"><a href="'. get_option('catalogue_page_url') .'">'.$trans.'</a></li>'; 
        foreach($termsCatSort as $term){
            if($term_slug==$term->slug){
            $class  =   'active-wpc-cat';
        }else{
            $class  =   '';
        }
        $return_string .=  '<li class="wpc-category '. $class .'"><a href="'.get_term_link($term->slug, 'wpccategories').'">'. $term->name .'</a></li>';    
        }
    }else{
        $return_string .=  '<li class="wpc-category"><a href="#">No category</a></li>'; 
    }
}