Plugins_url()错误地返回带有www子域的URL

时间:2012-02-10 作者:sholsinger

我正在开发一个插件,为了回答这个问题,我们称之为“我的插件”。我的插件目录如下所示:

my-plugin/
 |- image.jpg
 |- script.js
 |- script.php
 |- plugin.php
 |- ajax.php
在脚本中。php我有一段代码指定了一些JS。在其中,我需要一个ajax的URL。php。e、 g.:

<script type="text/javascript">
  foo = jQuery.getJSON("<?= plugins_url(\'ajax.php\', __FILE__); ?>", function (data)
    { /* ... */ });
</script>
我的wordpress域配置了无子域的基本url,例如:http://example.com/ 但是,URL返回自plugins_url 是:http://www.example.com/wp-content/plugins/my-plugin/ajax.php. 不幸的是,这会导致无法加载脚本,因为jQuery的getJSON在针对错误地址返回HTTP 301响应时始终“取消”请求。

为什么是plugins_url (在WordPress 3.3.1中)当WordPress的“站点地址”设置没有URL时,是否返回带有“www”的URL?

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

您可以尝试在配置中使用以下命令来覆盖它。php,看看它是否可以工作,因为它会更新您的数据库,这样做将使它无法在您的管理中更改(它将变灰)。

define(\'WP_SITEURL\', \'http://example.com/\');
以及一些替代定义,http://codex.wordpress.org/Editing_wp-config.php#WordPress_address_.28URL.29

如果不行,我会检查你的。htaccess。

SO网友:EAMann

这个plugins_url() 函数根据您配置的站点URL构建URL字符串。记住,WordPress URL和站点URL是两个不同的东西。

plugins_url() 仅是以下内容的串联:

  • get_option( \'site_url\' )
  • /wp-content
  • 插件的文件夹,所以如果你在网站上看到www,那是因为site_url 设置为使用www。

结束

相关推荐

Customizing wp-activate.php

有人知道我如何定制wp activate吗。php?它将内容包装在<div id=\"content\" class=\"widecolumn\">, 然而,在我的主题中,主包装是<div id=\"main\">大概我可以div#content.widecolumn 与相同div#main. 但我很好奇,是否有人知道如何在不编辑它的情况下自定义此文件。