Como recuperar valores de campo do plug-in WP "Carbon Fields 2.1.0"? Em que fase eles estão acessíveis?
Primeiro eu baixeihttps://carbonfields.net/zip/latest/ e instalou o plugin no back-end do WP. Eu também o ativei.
Para este caso de teste, eu uso o modelo "Twenty Sixteen" com uma nova instalação do WordPress sem outros plugins instalados e de acordo com opágina de documentação dos campos de carbono Adicionei o seguinte pedaço de código ao topo do meu arquivo functions.php:
<?php // PHP 7
use Carbon_Fields\Container;
use Carbon_Fields\Field;
add_action( 'carbon_fields_register_fields', 'crb_attach_theme_options' );
function crb_attach_theme_options() {
Container::make( 'theme_options', 'Theme Options' )
-> set_page_menu_position( 0 )
-> add_fields( array(
Field::make( 'text', 'crb_text')
) );
}
Tudo parece bom até agora, porque "Opções de tema" aparece no back-end do WP, conforme o esperado.
Agora eu tento recuperar o valor do campocrb_text
do seguinte modo:
// this snippet starts exactly where the previous one ended
add_action( 'after_setup_theme', 'crb_load' );
function crb_load() {
// require_once( ABSPATH . '/vendor/autoload.php' ); original from website throws: "Failed opening required" so modified to:
require_once( ABSPATH . 'wp-content/plugins/carbon-fields/vendor/autoload.php' );
\Carbon_Fields\Carbon_Fields::boot();
var_dump( carbon_get_theme_option( 'crb_text' ) ); // -> string(0) ""
var_dump( carbon_get_theme_option( '_crb_text' ) ); // -> string(0) "" isn't actually the right way to do it but give it a try for testing purpose
var_dump( get_option( '_crb_text' ) ); // -> string(4) "test"
}
Como você pode ver, sou capaz de recuperar os dados chamandoget_option( '_crb_text' )
que é a maneira WP nativa, mas os plugins funcionamcarbon_get_theme_option( 'crb_text' )
não funciona. Na verdade, isso seria bom para "campos simples", mas existem "campos complexos" que precisam ser recuperados pelas próprias funções dos plugins, que sãocarbon_get_theme_option()
nesse caso.
Também dei uma olhada nesta pergunta:use Carbon Fields na classe de plug-in personalizado. Mas essa pergunta termina onde a minha começa.
Agradeço antecipadamente...
PS: Estou acostumado a trabalhar com o Carbon Fields 1.6, que funciona bem com uma configuração semelhante, mas deseja atualizar para a ramificação 2.
Meu ambiente novamente:define('WP_DEBUG', true);
, Carbon Fields 2.1.0, WordPress 4.8.2 – de_DE (nova instalação sem outros plugins, exceto Carbon Fields), Twenty Sixteen 1.3, PHP 7