include – get_option() nie zwraca oczekiwanej wartości z wtyczki
Próbuję stworzyć swoją pierwszą wtyczkę i jak dotąd wszystko było w porządku, z wyjątkiem jednej małej irytującej rzeczy. Mam skonfigurowane pola i aktualizuję dane i wygląda dobrze w mojej bazie danych:
mfwp_settings | a:1:{i:test;s:3:"response";}
Ale kiedy chcę powtórzyć wartość „test” w moim panelu administracyjnym, wraca pusta lub NULL. Echo dobrze odbija się na stronie frontowej, ale w ramach wtyczki nie pobiera danych przy użyciu następujących elementów:
$mfwp_opt = get_option('mfwp_settings')['test'];
Ponownie, powyższe odpala dobrze w normalnym php na froncie. Mogę więc tylko założyć, że problem dotyczy brakującej „ścieżki” i/lub „zawiera” w głównym PHP wtyczki.
Więc… czy jest jakaś specjalna ścieżka, którą muszę umieścić w głównej wtyczce PHP?
Wpisałem ABPATH na wszelki wypadek, ale bez powodzenia:
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
Pomyślałem, że mógłbym skopiować i dostosować funkcję „get_option” i użyć jej we własnej wtyczce, ale wydaje się to niepotrzebne. Dlatego każda pomoc byłaby mile widziana!
Edytować
Aby być bardziej przejrzystym, poniżej umieściłem php, nad którym pracuję. Wszystko w php działa dobrze Z WYJĄTKIEM, że nie wywoła metody get_option
lub pobrać dane przez $wpdb
.
<?php
// Initiate Global(s)
global $wpdb;
//TRIED to call normally via get_option, but it wouldn't fire
$test = get_option( 'mfwp_settings' );
//TRIED to call via SQL, but comes back as NULL
$get_settings = $wpdb->get_results ( "
SELECT *
FROM $wpdb->wp_options
WHERE option_name = mfwp_settings
LIMIT 1
" );
$field1 = get_option( mfwp_settings );
// Creating Admin Menu option
add_action('admin_menu', function () {
add_options_page(
//CHANGE
'My First WordPress Plugin', //title browser
//CHANGE
'MFWP', //menu text
//KEEP
'manage_options', //require capability **KEEP AS manage_options**
//CHANGE
'mfwp_admin', //reference slug
//CHANGE
'mfwp_options_page' //callback to menu body
);
}
);
// Call Back & create body - CHANGE prefix
function mfwp_options_page() {
//ob_start(); ?>
<div class="wrap">
<h2>My First WordPress Plugin Options</h2>
<form method="post" action="options.php">
<?php
settings_fields( 'mfwp_settings_group' );
?>
<h4><?php _e('Placeholder for Plugin Fields', 'mfwp_domain'); ?></h4>
<p><?php echo $field1 . ' tester<br />'; echo var_dump($get_settings);?>
<label class="description" for="mfwp_settings"><?php _e('This is a label description', 'mfwp_domain'); ?></label>
<input class="regular-text" id="mfwp_settings" name="mfwp_settings" type="" value="<?php echo $test; ?>">
</p>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Save Option', 'mfwp_domain'); ?>">
</p>
</form>
</div>
<?php
//echo ob_get_clean();
}
function mfwp_register_settings() {
$args = array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field', //Sanatizes data
'default' => NULL,
);
register_setting('mfwp_settings_group', 'mfwp_settings', $args);
}
add_action('admin_init', 'mfwp_register_settings');