我的网站上出现了一些PHP代码错误。错误状态
致命错误:未捕获错误:在对象上下文中不使用$ this
function search_shortcode() {
return '<div class="genesis-404-search">' . get_search_form( false ) . '</div>';
}
// Add shortcode for search form in Genesis Framework
add_shortcode( 'genesis-404-search', array( $this, 'search_shortcode' ) );
答案 0 :(得分:0)
错误Fatal error: Uncaught Error: Using $this when not in object context
表示某事物正在用$this
引用类/对象,而当前范围中没有类/对象。
如果您发布的代码是
function search_shortcode() {
return '<div class="genesis-404-search">' . get_search_form( false ) . '</div>';
}
// Add shortcode for search form in Genesis Framework
add_shortcode( 'genesis-404-search', array( $this, 'search_shortcode' ) );
像这样包裹在一个类中:class Some_Class { /* Your Code */ }
然后其他东西在起作用。
如果没有,并且像您发布的一样是本机,请替换:
add_shortcode( 'genesis-404-search', array( $this, 'search_shortcode' ) );
使用
add_shortcode( 'genesis-404-search', 'search_shortcode' );
WordPress允许您使用回调函数来引用类,这是原始代码试图执行的操作。但是,如果没有要引用的类,则只需使用可调用函数名称即可。我还考虑将函数名称替换为更独特的名称,因为您不在Class或Namespace中,search_shortcode
可能因通用性而导致命名冲突:
function so_53052312_search_shortcode() {
return '<div class="genesis-404-search">' . get_search_form( false ) . '</div>';
}
// Add shortcode for search form in Genesis Framework
add_shortcode( 'genesis-404-search', 'so_53052312_search_shortcode' );