Сохранение входных значений опций WordPress Theme

Я создал пользовательскую страницу параметров темы, которая хорошо видна на заднем плане. Я хочу, чтобы пользователь мог вводить и сохранять значения URL через опции темы. Затем я назначу связанные с ними переменные непосредственно в разметку для динамического заполнения значения href.

В данный момент у меня возникла проблема при попытке сохранить изменения. Надеюсь, кто-то может мне помочь. Спасибо за ваше время.

<?php

function theme_settings_page()
{
?>

<div class="wrap">
<?php if (function_exists('the_custom_logo')) {
the_custom_logo();
}
else{
bloginfo('name');
}
?>
<h1>THEME OPTIONS</h1>
<p>The theme options panel allows you to directly control the output for some of the key features of your website.</p>
<p><i>Author: </i></p>
<p><i>Date: 06/05/18 | Version 1.0 </i></p>
<p><i>Website: </i></p>
<hr>
<h3>Social Connections</h3>
<p>Easily connect directly to your social profiles by providing the full absolute URL to your social account profile.</p>
<p>Example:<i><span> "https://facebook.com/yourprofile"</span></i></p>

<table>
<tr align="left" valign="middle">
<th scope="row"><?php _e( 'Facebook', 'customtheme' ); ?></th>
<td><input id="sample_theme_options[fburl]" type="text" name="sample_theme_options[fburl]" value="<?php esc_attr_e( $options['fburl'] ); ?>" /></td>
</tr>

<tr align="left" valign="middle">
<th scope="row"><?php _e( 'Google Plus', 'customtheme' ); ?></th>
<td><input id="sample_theme_options[gpurl]" type="text" name="sample_theme_options[gpurl]" value="<?php esc_attr_e( $options['gpurl'] ); ?>" /></td>
</tr>

<tr align="left" valign="middle">
<th scope="row"><?php _e( 'Instagram', 'customtheme' ); ?></th>
<td><input id="sample_theme_options[inurl]" type="text" name="sample_theme_options[fburl]" value="<?php esc_attr_e( $options['inurl'] ); ?>" /></td>
</tr>

<tr align="left" valign="middle">
<th scope="row"><?php _e( 'LinkedIn', 'customtheme' ); ?></th>
<td><input id="sample_theme_options[liurl]" type="text" name="sample_theme_options[fburl]" value="<?php esc_attr_e( $options['liurl'] ); ?>" /></td>
</tr>

<tr align="left" valign="middle">
<th scope="row"><?php _e( 'Twitter', 'customtheme' ); ?></th>
<td><input id="sample_theme_options[twurl]" type="text" name="sample_theme_options[fburl]" value="<?php esc_attr_e( $options['twurl'] ); ?>" /></td>
</tr>

<tr align="left" valign="middle">
<th scope="row"><?php _e( 'Youtube', 'customtheme' ); ?></th>
<td><input id="sample_theme_options[yturl]" type="text" name="sample_theme_options[fburl]" value="<?php esc_attr_e( $options['yturl'] ); ?>" /></td>
</tr>
</table>

<form method="post" action="options.php">
<?php
settings_fields("options");
do_settings_sections("theme-options");
submit_button();
?>
</form>
</div>
<?php
}


/**
Add Theme Options To Admin Side Menu **/
function add_theme_menu_item()
{
add_menu_page("Theme Options", "Theme Options", "manage_options", "theme-panel", "theme_settings_page", null, 60);
}

add_action("admin_menu", "add_theme_menu_item")

?>

0

Решение

WordPress имеет новый API параметров для управления всеми этими страницами параметров и настройками, а также многое другое.

Полный пример для WordPress Options API здесь: https://codex.wordpress.org/Creating_Options_Pages

0

Другие решения

Вы использовали поля настроек в вашей форме. Для этого вы должны зарегистрировать свои настройки раньше.
Для настройки, пожалуйста, обратитесь:
https://codex.wordpress.org/Settings_API

Или вот пошаговое руководство:
https://codex.wordpress.org/Creating_Options_Pages
https://wisdmlabs.com/blog/create-settings-options-page-for-wordpress-plugin/

0