Wordpress - 将类方法传递给query_var钩子

时间:2015-05-29 13:17:03

标签: php wordpress-plugin wordpress-theming wordpress

我在WordPress中有以下代码,以便尝试使用esc_url(get_permalink() . '?month=' . get_query_var('month'));的一个阶段。

为了更多地了解WordPress并创建一个允许我在需要时添加更多值的类,我创建了以下类并将其链接到query_vars过滤器:

 //Create the needed GET vars //

 $custom_query_values = array('month','day');

 new _custom_query_vars($custom_query_values);

 class _custom_query_vars
 {
     public $_custom_vars;
     function __construct($custom_vars){
        $this->_custom_vars = $custom_vars;
        add_filter('query_vars',array(&$this, '_add_custom_querys'));
    }

    public function _add_custom_querys(){
    // Return an array of values //
        foreach($this->_custom_vars as $value)
        {
            $vars[] = $value;
        } 
        print_r($vars);
        return $vars;
     }
 } 

 /*function add_custom_query_var( $vars ){
   $vars[] = "month";
   $vars[] = "day";
   return $vars;
 }
 add_filter( 'query_vars', 'add_custom_query_var' ); */

上面的代码不起作用,相反,当类处于活动状态时,当我创建一个新实例时,我网站上的所有页面都将停止工作,我将简单地定向到我的根地址。然而,功能"似乎"因为print_r()确实会打印Array ( [0] => month [1] => day )的值,所以该方法必须以某种形式或形式传递给query_var钩子。

注释掉的代码的第二部分是我尝试简单地返回静态值的标准函数。这工作并使用正常的esc_url(get_permalink() . '?month=' . get_query_var('month'));按预期工作。有任何想法吗? (最后一件事,有没有办法制作这个http://www.sitename/pagename/month)。

感谢您提供任何帮助,

1 个答案:

答案 0 :(得分:0)

我不确定但是试试这个。

public function _add_custom_querys(){
         $vars =  Array();

         foreach($this->_custom_vars as $value){
             array_push($vars,$value);
         }
          return $vars;
}