我通常使用register_widget 函数注册我的小部件。在小部件类的构造函数中,我放置以下代码:
class TourDates extends WP_Widget
{
public function __construct()
{
$options = array('classname' => 'tour-dates', 'description' => __('Display upcoming tour dates'));
parent::__construct('tour_dates', __('Tour Dates'), $options);
}
}
您还可以查看 WordPress Codex 网站上的 Widgets API。希望这可以帮助您创建自定义小部件。
另外我通常做的是将我的翻译与从 WordPress 加载的默认翻译合并,如下所示:
function loadTextDomain() {
$locale = get_locale();
$languageDir = dirname(__FILE__) . '/languages';
$domain = 'default';
$mofile = $languageDir . '/theme.' . $locale . '.mo';
global $l10n;
$mo = new MO();
if (!$mo->import_from_file($mofile)) {
return false;
}
if (isset($l10n[$domain]) && !empty($l10n[$domain]->entries)) {
$l10n[$domain]->merge_with($mo);
} else {
$l10n[$domain] = $mo;
}
}
add_action('init', 'loadTextDomain');
此代码看起来类似于 WordPress 中的 load_textdomain 函数,但它避免了原始函数中确实存在的所有过滤器,这有助于避免任何 WordPress 挂钩更改您的 $domain 和 $mofile 变量。
但我会留给你。也许来自 WordPress 的 load_textdomain() 函数也可以正常工作,但如果它没有,这个函数应该可以解决问题。
现在,如果您使用我在上面粘贴的loadTextDomain() 函数,您只需将languages 文件夹放在与您的functions.php 所在的文件夹相同的文件夹中,您可以在该新文件夹中放置theme.nl_NL.mo 或theme.de_DE.mo 文件取决于您使用的语言。这应该允许翻译您的网站以及管理区域。