如何更改特定页面的“发布”按钮文本

时间:2017-07-19 作者:mondi

我试图在wordpress安装中创建一个特定页面,以便在“上载”按钮上显示不同的文本。

所以我试着:

function change_settingspage_publish_button( $translation, $text ) {

    if ( \'567\' == get_the_ID() && $text == \'Publish\' ) {

        return \'Save Settings\';

    } else {

        return $translation;
    }
}
add_filter( \'gettext\', \'change_settingspage_publish_button\', 10, 2 );
(其中“567”是页面id)。但它不起作用。有什么想法吗?

3 个回复
SO网友:oscarmrom

我想在块编辑器中更改发布按钮的文本,遇到了这个问题。根据给出的答案,它并没有改变文本。随着Gutenberg的更新,我意识到这必须用JavaScript来完成。我发现这样的反应:Changing text within the Block Editor

我在插件代码中应用了它(您也可以将其插入到您的Themes functions.php文件中)。

function change_publish_button_text() {
// Make sure the `wp-i18n` has been "done".
  if ( wp_script_is( \'wp-i18n\' ) ) :
  ?>
    <script>
      wp.i18n.setLocaleData({\'Publish\': [\'Custom Publish Text\']});
    </script>

    <script>
      wp.i18n.setLocaleData({\'Publish…\': [\'Custom Publish Text\']});
    </script>
  <?php
  endif;
}

add_action( \'admin_print_footer_scripts\', \'change_publish_button_text\', 11 );
针对您的特定请求,您可以仅针对帖子ID执行以下操作:

function change_publish_button_text() {
  global $post;
  if (get_the_ID() == \'123\') {
    // Make sure the `wp-i18n` has been "done".
    if ( wp_script_is( \'wp-i18n\' ) ) :
      ?>
        <script>
          wp.i18n.setLocaleData({\'Publish\': [\'Custom Publish Text\']});
        </script>

        <script>
          wp.i18n.setLocaleData({\'Publish…\': [\'Custom Publish Text\']});
        </script>
      <?php
      endif;
    }
  }

add_action( \'admin_print_footer_scripts\', \'change_publish_button_text\', 11 );

SO网友:Nuno Sarmento

你可以尝试下面的代码,它对我有用。

function change_publish_button( $translation, $text ) {
if ( \'CUSTOM_POST_TYPE\' == get_post_type() && ($text == \'Publish\' || $text == \'Update\') ) {
    return \'Save\';
 } else {
    return $translation;
 }
}

SO网友:mrmadhat

如果您想针对特定的帖子/页面ID,可以使用类似的方法。

add_action(\'admin_notices\', \'check_id_before_text_change_wpse_273920\');

function check_id_before_text_change_wpse_273920() {
    global $post;
    //if post isn\'t set bail
    if(null == $post)
        return;

    $id = $post->ID;
    //add our filter if the id matches
    if($id == \'567\') {
        add_filter(\'gettext\', \'change_publish_text_wpse_273920\', 30, 2);
    }
}

function change_publish_text_wpse_273920($translation, $text) {
    //if this runs and publish isn\'t in the text
    //we still want to return something
    $rtn_text = $translation;

    if($text === \'Publish\') {
        $rtn_text = \'Save setting\';
    }

 return $rtn_text;
}

结束

相关推荐

Media_Handle_sideload()返回正在递增的post_id

目前我正在尝试截图的网站。通过使用mshots和media\\u handle\\u sideload,效果非常好。然而,这些截图需要与我的帖子相关联。我做了一个函数upload_image_from_url($url, $post_id) 并将$post\\u id传递给函数$id = media_handle_sideload( $file_array, $post_id); 现在,$id的返回值从$post\\u id递增1,例如,$post\\u id为200,$id为201。