我使用他们的设置 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 );
}
}