2016-04-19 4 views
1

WordPressで設定APIを使用して多くのカスタム設定を作成しましたが、何らかの理由で特に問題が発生しています。パーマリンクセクションにカスタム設定を保存しない

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を返します。

答えて

1

Wordpressのパーマリンクの設定は、設定のみのセクションとフィールドを提供しますが、それは値にメディアなどの他のページと同じカスタムフィールドを保存していない、など

を読む私はあなたがパーマリンクにカスタムフィールドの値を保存するために別の方法でする必要があると思いますページ。

以下は、permalinkページの保存設定のサンプルコードです。

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); 

    } 
} 
+0

遅れて申し訳ありません。ちょうど最終的にこれをもう一度見直す時間がありました。私はあなたの努力に拍手を送る。文字通り、私のコードにあなたのコードをコピーして貼り付けただけで、それはうまく機能しました。それはとても単純なコンセプトですが、なぜ私は自分自身でそれをするとは思わなかったのか分かりません。 – Quantastical

関連する問題