<?php
defined( \'ABSPATH\' ) or die( \'No script kiddies please!\' );
define( \'MY_PLUGIN_PATH\', plugin_dir_path( __FILE__ ) );
define( \'MY_PLUGIN_URL\', plugin_dir_url( __FILE__ ) );
register_activation_hook(__FILE__,\'my_plugin_install\');
register_deactivation_hook( __FILE__, \'my_plugin_remove\' );
function my_plugin_install() {
global $wpdb;
$the_page_title = \'TEST\';
$the_page_name = \'test\';
delete_option("my_plugin_page_title");
add_option("my_plugin_page_title", $the_page_title, \'\', \'yes\');
delete_option("my_plugin_page_name");
add_option("my_plugin_page_name", $the_page_name, \'\', \'yes\');
delete_option("my_plugin_page_id");
add_option("my_plugin_page_id", \'0\', \'\', \'yes\');
$the_page = get_page_by_title( $the_page_title );
if ( ! $the_page ) {
$_p = array();
$_p[\'post_title\'] = $the_page_title;
$_p[\'post_content\'] = "";
$_p[\'post_status\'] = \'publish\';
$_p[\'post_type\'] = \'page\';
$_p[\'comment_status\'] = \'closed\';
$_p[\'ping_status\'] = \'closed\';
$_p[\'post_category\'] = array(1);
$the_page_id = wp_insert_post( $_p );
}
else {
$the_page_id = $the_page->ID;
$the_page->post_status = \'publish\';
$the_page_id = wp_update_post( $the_page );
}
delete_option( \'my_plugin_page_id\' );
add_option( \'my_plugin_page_id\', $the_page_id );
}
function my_plugin_remove() {
global $wpdb;
$the_page_title = get_option("my_plugin_page_title");
$the_page_name = get_option("my_plugin_page_name");
$the_page_id = get_option(\'my_plugin_page_id\');
if( $the_page_id ){wp_delete_post( $the_page_id );}
delete_option("my_plugin_page_title");
delete_option("my_plugin_page_name");
delete_option("my_plugin_page_id");
}
function custom_template($template){
$template = plugin_dir_path( __FILE__ ) . \'my-custom-page.php\';
return $template;
}
if ( !is_admin() ) {
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
if(get_the_ID() == get_option(\'my_plugin_page_id\')){
add_filter( \'template_include\', \'custom_template\' );
}
}
}
}
?>
这是代码给出的错误:
Fatal error: Call to a member function have_posts() on a non-object in /var/www/html/wordpress/wp-includes/query.php on line 782
my-custom-page.php
是仅包含
HTML
和
CSS
在里面。
页面创建部分正常,原因是!is_admin()
部分,当我在管理面板时没有错误。
有什么提示吗?谢谢:)
P、 wordpress安装是4.4.2的基础,没有任何修改(没有新页面、不同主题、ecc…)