【问题标题】:Fatal error: Class 'WP_Customize_Control' not found - WordPress致命错误:找不到类 'WP_Customize_Control' - WordPress
【发布时间】:2013-05-08 02:20:33
【问题描述】:

我正在构建自己的 wordperss 主题,在开始使用 WordPress Customizer 的主题选项时,我遇到了一些麻烦。

基本上我试图创建一个textarea,我已经阅读了我需要创建一个扩展类,然后在WordPress的add_control函数下调用它。

我已经尝试过,并且在定制模式下一切正常,但是一旦我进入网站的任何其他部分,我就会收到此错误:

致命错误:找不到类“WP_Customize_Control”

正如我所说,它在定制器中 100% 有效,但它是自我的,但包括管理员在内的任何其他页面我都会收到此消息。

这是课程:

class ublxlportfolio_textarea extends WP_Customize_Control {
    public $type = 'textarea';

    public function render_content() {
        ?>
        <label>
        <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
        <textarea rows="5" style="width:100%;" <?php $this->link(); ?>><?php echo esc_textarea( $this->value() ); ?></textarea>
        </label>
        <?php
    }
}

我需要将其包装在条件标签中吗?如果有,那会是什么??

我做错了吗?

【问题讨论】:

    标签: php wordpress wordpress-theming


    【解决方案1】:

    发现类需要进入注册函数!

    【讨论】:

      【解决方案2】:

      澄清@Robert 的正确答案:

      仅在实际使用主题定制器时才加载类 WP_Customize_Control。因此,您需要在绑定到“customize_register”操作的函数中定义您的类。

      例子:

      add_action( 'customize_register', 'my_customize_register' );
      
      function my_customize_register($wp_customize) {
      
        //class definition must be within my_customie_register function
        class ublxlportfolio_textarea extends WP_Customize_Control { ... }
      
        //other stuff
      }
      

      【讨论】:

      • 只需确保在尝试使用它之前添加自定义控件。我犯了那个错误,一旦我发现自己的愚蠢,就不得不facepalm
      • 确实如此。这是正确的实施方式。
      【解决方案3】:

      您需要在类定义之前添加以下行:

      include_once ABSPATH . 'wp-includes/class-wp-customize-control.php';
      

      我遇到了同样的问题并从谷歌登陆这里,希望这对某人有所帮助!

      【讨论】:

        【解决方案4】:

        提醒:如果您只是在扩展时忘记检查 WP_Customize_Control 类是否存在。如果您在未使用主题定制器的页面中,此提醒可能会帮助您调试此问题;因为只有在实际使用主题定制器时才会加载 WP_Customize_Control 类。

        if (class_exists('WP_Customize_Control')) {
            class yourCustomControlClass extends WP_Customize_Control {
               // control actions
            }
        }
        

        干杯!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-03
          • 2016-08-24
          • 1970-01-01
          • 2011-09-08
          • 2011-12-17
          • 2018-12-21
          • 2012-11-21
          • 2015-03-20
          相关资源
          最近更新 更多