我在我的网站上添加了一个消息按钮(我正在使用一个插件,该插件支持私人消息),方法是将插件的短代码添加到我的页脚。php:
<div class="msgshort"><?php echo do_shortcode(\'[ultimatemember_message_button user_id=1]\'); ?></div>
以下是我的网站上的屏幕截图:https://ibb.co/hLTkmQ以下是此短代码背后的代码:
/***
*** @shortcode
***/
function ultimatemember_message_button( $args = array() ) {
global $ultimatemember, $um_messaging;
$defaults = array(
\'user_id\' => 0
);
$args = wp_parse_args( $args, $defaults );
extract( $args );
$current_url = $ultimatemember->permalinks->get_current_url();
if( um_get_core_page(\'user\') ){
do_action("um_messaging_button_in_profile", $current_url, $user_id );
}
if ( !is_user_logged_in() ) {
$redirect = um_get_core_page(\'login\');
$redirect = add_query_arg(\'redirect_to\', $current_url, $redirect );
$btn = \'<a href="\' . $redirect . \'" class="um-login-to-msg-btn um-message-btn um-button" data-message_to="\'.$user_id.\'">\'. __(\'Message\',\'um-messaging\'). \'</a>\';
return $btn;
} else if ( $user_id != get_current_user_id() ) {
if ( $um_messaging->api->can_message( $user_id ) ) {
$btn = \'<a href="#" class="um-message-btn um-button" data-message_to="\'.$user_id.\'"><span>\'. __(\'Message\',\'um-messaging\'). \'</span></a>\';
return $btn;
}
}
}
此按钮已编码,因此按钮文本为“消息”。此按钮已出现在我的用户配置文件页面上,但现在我也将其添加到了页脚中,我想更改页脚中显示“消息”的文本,但不想更改用户配置文件模板区域中的文本。因此,我使用此代码重命名我网站上消息按钮的文本:
//rename messagetxt
function um_rename_messagetxt( $translated_text, $text, $text_domain ) {
if ( \'Message\' === $text ) {
$translated_text = \'Contact Us\';
}
return $translated_text;
}
add_filter ( \'gettext\', \'um_rename_messagetxt\', 10, 3);
当然,这会更改所有最初显示“Message”的按钮的按钮文本(因此,我添加的带有短代码的footer.php消息按钮和用户配置文件模板中的消息按钮都会更改)。我只需要更改通过快捷码添加到页脚的按钮的文本。php文件。如何隔离文本翻译,以便只翻译特定元素的文本?例如,有没有一种方法我只能在页脚中找到“消息”时翻译它。如果是php,我将如何编写它?我真的很感激在这方面的任何帮助!
旁注:我是这个插件的高级成员,已经联系了他们的付费支持,他们说他们不确定如何做到这一点,并指示我使用Poedit。。。我认为Poedit不是一个合适的解决方案。非常感谢Dave Romsey,尽管我的php技能不足,但他还是试图帮助我:)