0

我正在为我在本地运行的当前 wordpress 项目使用这个 git 工作流MAMP。它允许我使用子模块将 WP 核心文件与主题和插件文件夹分开,这很棒。我wp-config有一些额外的条目来告诉 Wordpress 核心文件在哪里以及主题文件夹在哪里:

if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/wordpress/');

define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/core');
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/core/wordpress');
define('WP_CONTENT_DIR', realpath(ABSPATH . '../wp-content/'));
define('WP_CONTENT_URL', WP_HOME . '/wp-content');
define('UPLOADS', '../wp-content/uploads');

我的站点根目录结构如下:

-wordpress (contains core files)
-wp-content
    -themes
    -plugins
    -uploads
-wp-config.php

所以我的主页是:http://localhost:8888/core/

我遇到的所有问题都与插件有关。其中一些get_bloginfo('wpurl')用于加载资产。因此,一个示例如下所示:

http://localhost:8888/core/wordpress/wp-content/plugins/{PLUGIN}/images/{PLUGIN_IMAGE}.png

它实际上应该在哪里:

http://localhost:8888/core/wp-content/plugins/{PLUGIN}/images/{PLUGIN_IMAGE}.png

我可以在不单独修改插件的情况下以某种方式覆盖它吗?

更新

这可行,但我需要将其限制为仅在调用插件时:

function alter_site_url($url) {
    return str_replace('/core/wordpress', '/core', $url);
}

add_filter('site_url', 'alter_site_url');
4

1 回答 1

0

get_bloginfo('wpurl')site_url()在幕后调用,然后调用get_site_url(). get_site_url()有一个过滤器 ,site_url您可以使用它来更改函数返回的值。

这个答案有一个如何添加它的例子。请记住,这将在全球范围内改变它,并可能导致其他问题(当前正在运行的东西可能会开始破坏)。

于 2013-07-24T19:45:33.000 回答