WordPress不会在永久链接部分保存我的自定义设置


WordPress doesn't save my custom setting in permalink section

我使用他们的设置 API 在 WordPress 中创建了许多自定义设置,但由于某种原因,我遇到了一个特别的问题。

我想使用 WordPress 的短链接功能包含一个自定义 URL 缩短器,因此我添加了一个自定义设置来存储 URL 缩短器的域名。这允许它是可定制的。

function urb_admin_init_shortlink_domain()
{
  $option_group = 'permalink';
  $option_name = 'shortlink_domain';
  $sanitize_callback = null;
  register_setting( $option_group, $option_name, $sanitize_callback );
  $id = 'shortlink_domain';
  $title = 'Shortlink Domain';
  $callback = 'urb_shortlink_domain';
  $page = 'permalink';
  $section = 'optional';
  $args = null;
  add_settings_field( $id, $title, $callback, $page, $section, $args );
}
function urb_shortlink_domain()
{
  $option = 'shortlink_domain';
  echo '<input type="text" name="' . $option . '" id="' . $option . '" value="' . get_option( $option ) . '" class="regular-text ltr" />';
}
add_action( 'admin_init', 'urb_admin_init_shortlink_domain' );

由于某种原因,它不会保存值。get_option('shortlink_domain')函数返回false

WordPress永久链接设置仅提供设置部分和字段,但它不会像媒体,阅读等其他页面一样保存值自定义字段。

我认为您需要另一种方式在永久链接页面上保存自定义字段值。

下面是永久链接页面上保存设置的示例代码。

add_action( 'admin_init', 'save_your_permalink_settings' );
function save_your_permalink_settings(){
  if( isset($_POST['permalink_structure']) && isset( $_POST['shortlink_domain'] ) ){
    $short_domain = wp_unslash( $_POST['shortlink_domain'] );
    update_option( 'shortlink_domain',  $short_domain );
  } 
}