致命错误:调用未定义的函数plugin_dir_path()

时间:2017-02-27 作者:Ami

我正在尝试创建一个自定义WordPress插件,并在“插件”文件夹中创建了一个新文件夹。它被称为“wp服务表”。在这个文件夹中,我创建了两个文件:wp services table。php和wp服务表短代码。php

目前,wp服务表短代码。php文件为空。我只在wp services表中写了这个。php文件:

<?php
/**
* Plugin Name: Table and Modal Window for Displaying Services
* Description: Displays Services in a table, by Categories and opens a Modal Window when the user clicks for more information.
* Version: 0.1.0
* Author: Ami
*/

//Exit if accessed directly
if ( ! defined( \'ABSPATH\' ) ) {
exit; 
}

require_once ( plugin_dir_path(__FILE__) . \'wp-services-table-shortcode.php\' );
但我有一个错误:

致命错误:调用/home/mysitedomain/public\\u html/wpfoldername/contentfolder/plugins/wp services表/wp services表中未定义的函数plugin\\u dir\\u path()。php在线14

这可能是因为我有一个自定义名称而不是“wp内容”?或者因为我在子文件夹(“wpfoldername”)中安装了WordPress,而不是直接安装在“public\\u html”文件夹中?

因为oterwise我认为我在插件文件中写的内容对于创建新插件是正确的。

我还尝试添加以下内容:

$dir = plugin_dir_path(__FILE__);
var_dump($dir);
die();
查看它将为插件显示什么路径,但当然,对于未定义的函数plugin\\u dir\\u path(),我仍然会遇到相同的错误

我希望有人知道为什么会这样,因为我很困惑。非常感谢。

I edited the question to add the contents of wp-config: 这可能很有用,因为我已经更改了wp内容文件夹的名称,并且WordPress也安装在子文件夹中。我认为这是相关的部分:

/* That\'s all, stop editing! Happy blogging. */

/** Absolute path to the WordPress directory. */
if ( !defined(\'ABSPATH\') )
define(\'ABSPATH\', dirname(__FILE__) . \'/\');

/** Renaming the wp-content folder. */
define (\'WP_CONTENT_FOLDERNAME\', \'contentfolder\');
define (\'WP_CONTENT_DIR\', ABSPATH . WP_CONTENT_FOLDERNAME) ;

define(\'WP_SITEURL\', \'http://\' . $_SERVER[\'HTTP_HOST\'] . \'/wpfoldername/\');
define(\'WP_CONTENT_URL\', WP_SITEURL . WP_CONTENT_FOLDERNAME);

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . \'wp-settings.php\');
还有索引。php文件位于“wpfoldername”文件夹中,它包含以下代码:

<?php
/**
* Front to the WordPress application. This file doesn\'t do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/

/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define(\'WP_USE_THEMES\', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . \'/wp-blog-header.php\' );

2 个回复
SO网友:codiiv

是不是你忘了评论Exit if accessed directly 部分

//Exit if accessed directly

if ( ! defined( \'ABSPATH\' ) ) {
exit; 
}

SO网友:Sjoerd van Hout

如何访问该页面?您是否试图在不使用网站前端的情况下直接访问pluginfile?如果是这样的话,Wordpress可能还没有加载。

如果在页面顶部添加以下代码,会发生什么情况?

if ( !defined(\'ABSPATH\') ) {
    //If wordpress isn\'t loaded load it up.
    $path = $_SERVER[\'DOCUMENT_ROOT\'];
    include_once $path . \'/wp-load.php\';
}
上面的代码确保在代码运行之前加载Wordpress。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请