2009-10-12 53 views
2

我想要wordpress來爲我的JavaScript做I18N。我的計劃是在PHP文件中有JavaScript代碼。例如,一個sample.js.php文件如下:如何使__()和_e()在wordpress的任何PHP文件中工作?

function foo() 
{ 
    alert(<?php _e('do something'); ?>); 
} 

sample.js.php文件被稱爲javascript。

<script type='text/javascript'>url-to-myplugin/sample.js.php</script> 

但是,似乎__()和_e()沒有工作,因爲它們沒有定義。 如何使_e()和__()在我的情況下工作?

感謝


我找到了答案。下面的代碼將完成這項工作。

<?php 
    define('WP_USE_THEMES', false); 
    require('./wp-blog-header.php'); 
?> 
+0

好你需要找到__()和_e()的定義,只是包括文件? – mauris 2009-10-12 14:03:18

+0

它們是在l10n.php中定義的,但只是包含那個文件不起作用。我想有一個現成的API來包含必要的文件。 – 2009-10-12 14:10:02

回答

-1

您是否安裝了gettext擴展?

+0

wordpress應該有gettext擴展名。 – 2009-10-12 14:25:09

1

就包括WP配置文件到sample.js.php腳本:

<?php require_once 'your-path-to/wp-config.php'; ?> 

function foo() 
{ 
    alert(<?php _e('do something'); ?>); 
} 
+0

要求wp-config.php使其顯示垃圾字符。 我找到了答案。 wp-blog-header.php很適合使用。 – 2009-10-13 04:59:14

+0

是的,wp-blog-header.php也可能工作。我通常加載wp-config.php,因爲我的一些插件文件需要數據庫連接。至於wp-config.php的問題,可能它有一個結束空格,一個空行或任何其他字符在關閉php-tag之後。它可以在WP包含的任何其他文件中加載。我通常會刪除這些符號,實際上它們已經在WP的最新版本(2.8.4)中被刪除,所以在測試期間沒有看到垃圾字符。 – 2009-10-13 06:54:57

相關問題