【问题标题】:wordpress detect plugin path to rootwordpress 检测到根目录的插件路径
【发布时间】:2012-03-16 10:00:24
【问题描述】:

我在 wordpress 插件中的 file.js.php 中有一个 JS/PHP 文件。

问题是 - 我需要包含一个 wordpress 文件才能使用 GLOBALS 和 wp 函数。

我的问题分为两部分:

1 - 最好包含哪个文件(安全性、性能等)

2 - 我怎样才能找到所述文件的路径 - 假设我不能使用 plugins_url() 包括它来识别路径或 wp root ?

目前我正在使用:

include("../../../../wp-load.php");

require_once (dirname(dirname(dirname(dirname(dirname ( __FILE__))))).'/wp-config.php');

但当然它是一种半硬编码的方法。如果 CONTENT" 或 "PLUGINS" 目录被移动,它不会保证什么都不会......

在解决这个问题时,问题被概述并浮出水面:PHP constant inside JS file

【问题讨论】:

    标签: path wordpress


    【解决方案1】:

    我认为你正在做的事情太复杂了。我认为更好的方法是检查 WordPress 中的 AJAX 调用是如何处理的:http://codex.wordpress.org/AJAX_in_Plugins

    您实际上不必将 JS 编写为 AJAX 即可使用这些方法,但您可以使用这些方法将一些设置变量放入您的页面中。您还可以拥有一个完全由 WordPress 生成的 javascript 文件,这意味着它可以完全访问数据库等。

    这样你就可以编写代码了

    add_action( 'wp_ajax_nopriv_myajax-submit', 'mydynamicjs' );
    add_action( 'wp_ajax_myajax-submit', 'mydynamicjs' );
    

    并从 wordpress 内部或外部调用以包含该 JS,例如:

    http://example.com/wordpress/wp-admin/admin-ajax.php?action=mydynamicjs
    

    不是真正正确的技术,因为您实际上应该返回 JSON,但是您将获得一个可以 100% 访问 WP 函数、数据库等的文件,而无需执行任何疯狂的包含。

    您也可以只写一些东西来通过 AJAX 访问您需要的数据,具体取决于您的目标。

    【讨论】:

      猜你喜欢
      • 2011-01-22
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      相关资源
      最近更新 更多