包含wp-config.php的最佳方式

时间:2014-08-27 作者:stijn.aerts

我想知道什么样的方式是最好的,包括可湿性粉剂配置。将php转换为插件。我读过一些相关的路径,如果插件文件位于其他地方,这些路径可能会失败。

3 个回复
最合适的回答,由SO网友:Otto 整理而成

最好的办法就是不要那样做。插件文件不需要包含wp配置。php。

你是在倒退。WordPress加载插件。插件不加载WordPress。

SO网友:Shaun Cockerill

wp-config.php 应始终已加载,且不需要包含。

在大多数情况下,确保$wbdp 包含在插件和主题函数中,以确保在正确的位置找到主题和插件文件,并且插件或主题处于活动状态。

如果global $wpdb 尚未设置,则不需要包含任何核心WordPress文件。这很可能意味着您的函数被触发得太早,您应该将其放置在一个动作中,例如muplugins_loaded, plugins_loaded, after_setup_theme, init, 或wp_loaded.

如果您有一个单独的文件,像ajax请求一样使用,那么您应该将其切换出来,改用WordPress ajax挂钩。

我发现的唯一有效时间包括wp-config.php 是在普通的基础上扩展if ( ! defined( \'ABSPATH\' ) ) exit;, 这样,当用户试图直接访问我的任何主题或插件文件/目录时,都会被重定向到主页。

<?php
/**
 * Silence is golden, but I actually want people to view the website.
 */
if ( ! defined( \'ABSPATH\' ) ) {
    // Call dirname() 4 times as this file is in \'/wp-contents/plugins/plugin-dir/\' and wp-config.php is in \'/\'
    require_once dirname( dirname( dirname( dirname( __FILE__ ) ) ) ) . \'/wp-config.php\';
    // Permanent redirect home.
    wp_safe_redirect( home_url(), 301 );
    die;
}

SO网友:marius

如果您只想访问wp-config.php 没有其余的WordPress功能。

执行以下步骤:

创建一个空的wp-settings.php 插件目录中的文件

将此添加到您的PHP文件中

define( \'ABSPATH\', $_SERVER[\'DOCUMENT_ROOT\'] . \'/wp-content/plugins/YOUR_PLUGIN_DIR/\' ); 
require_once( $_SERVER[\'DOCUMENT_ROOT\'] . \'/wp-config.php\' );
这非常适合WordPress 4.2.4“向下和向上”,我在自己的插件mywebapplets中进行了测试。

结束

相关推荐

更新wp-config.php和丢失的页面

我最近对我的wp-config.php 通过在没有正确db设置的本地版本上添加内存限制行。当我上传它时,db连接显然断了。在我更正db设置并重新上传wp-config.php, 我收到了安装页面。现在我所有的链接都断了,即使在刷新永久链接之后。但是,所有数据仍在我的数据库中。如何将所有页面重新连接到db,以便不丢失任何设置?