我在管理员面板中创建了一个新页面。
在此页面上,例如函数is_admin()
可以正常工作。
if ( ! is_admin() ) {
echo "You are viewing the theme";
} else {
echo "You are viewing the WordPress Administration Panels";
}
在此页面中,我将发布数据发送到xxx.php文件。
和!在这个xxx.php文件中,诸如is_admin之类的函数不起作用。
我怎样才能让wordpress理解,这个xxx.php文件是他的一部分?所以我可以使用此页面上的功能?
我在用
"include wp-load.php"
但它对我没有帮助。
答案 0 :(得分:0)
您可以将他添加到主题文件夹&包含在functions.php中:
// functions.php of your current theme
include __DIR__.'/custom.php';
答案 1 :(得分:0)
我刚刚检查了Github上的源代码。
function is_admin()
出现在此文件https://github.com/WordPress/WordPress/blob/6fda2e67b0fe3872cbf5f82b58b98f2a4c96d8f8/wp-includes/load.php#L710-L717
所以,require_once 'wp-includes/load.php;
应该把你排除在外。
答案 2 :(得分:0)
你将POST数据(请求,我假设)发送到另一个php文件的事实让我觉得它是一个完全不同的HTTP请求,因此你将无法在目标php文件中使用wp函数,除非您在该文件中包含wp-load.ph
。
请参阅:https://wordpress.stackexchange.com/questions/69184/how-to-load-wordpress-on-non-wp-page
答案 3 :(得分:0)
add_action('admin_menu', function(){
add_menu_page( 'Subscribe', 'Subscribe', 'manage_options', 'subsc-options', 'sub_setting', '', 4 );
} );
add_action( 'current_screen', function( $current_screen ){ // hook is admin panel only
if ( stripos($current_screen->base, 'subsc-options')==true ) {
include __DIR__.'/custom.php';
}
});
<form method="post">
<input type="hidden" name="my_save_settings" >
..............
</form>
/********* CUSTOM.PHP **************/
if ( isset($_POST['my_save_settings']) ) {
// save form fields
}