Como Incluir ACF em um Plugin ou Tema

Introdução

O plugin Advanced Custom Fields é uma ferramenta poderosa para o desenvolvimento de sites e aplicativos da web personalizados. Embora projetado principalmente para uso individual, ele também pode ser usado como uma estrutura por autores de plug-ins e temas para alimentar seus produtos gratuitos e premium.

Encorajamos os autores a incluir ACF e temos apenas algumas regras simples a seguir, que esperamos que você respeite. Este guia descreve o que fazer e não fazer ao incluir o ACF em seu plugin ou tema.

Tipos de Produto

Ao falar sobre um produto WordPress, podemos considerá-lo como um plugin, tema, plugin premium ou tema premium.

Nossas regras diferem apenas se o seu produto for considerado gratuito ou premium, e não se for um plugin ou tema.

Regras

Por favor, consulte a seguinte tabela de regras que regem a inclusão de nossos plug-ins.

ACFACF PRO
Incluir em um plugin grátis
Incluir em um tema grátis
Incluir em um plugin premium
Incluir em um tema premium
Incluir em um plugin “ACF”
Compartilhar informações da chave de licença
Use como um ponto de venda

Notas sobre marketing

Embora adoremos a ideia de você capacitar seus clientes com controles de publicação intuitivos, não gostamos da ideia de você anunciar isso para impulsionar as vendas.

Ao incluir ACF PRO em seu tema premium ou plugin premium, não anuncie isso em seu material de marketing. Por exemplo, fique longe de mensagens como “Este tema também inclui ACF PRO – normalmente $$$ – de graça!”

Notas sobre plug-ins “ACF”

Não permitimos que ACF ou ACF PRO sejam incluídos em qualquer tipo de extensão ou plugin “ACF”. Por exemplo, um plug-in denominado “ACF PRO Kit” que estende o plug-in com recursos extras pode não incluir o ACF PRO. Neste caso, o plugin “ACF PRO Kit” deve requerer a instalação do ACF PRO.

Como incluir arquivos de plug-in

Para incluir ACF ou ACF PRO em seu plugin ou tema, baixe os arquivos de plugin ACF apropriados e copie-os em seu plugin ou tema. Recomendamos usar a pasta “includes/acf” nos arquivos do produto.

Em seguida, use o código a seguir como um iniciador para personalizar e incluir o plug-in ACF em seu plug-in ou tema.

// Defina o caminho e a URL para o plug-in ACF.
define( 'MY_ACF_PATH', get_stylesheet_directory() . '/includes/acf/' );
define( 'MY_ACF_URL', get_stylesheet_directory_uri() . '/includes/acf/' );

// Inclui o plugin ACF.
include_once( MY_ACF_PATH . 'acf.php' );

// Personalize a configuração de url para corrigir URLs de ativos incorretos.
add_filter('acf/settings/url', 'my_acf_settings_url');
function my_acf_settings_url( $url ) {
    return MY_ACF_URL;
}

// (Opcional) Oculte o item de menu de administração do ACF.
add_filter('acf/settings/show_admin', 'my_acf_settings_show_admin');
function my_acf_settings_show_admin( $show_admin ) {
    return false;
}

Como criar uma página de opções no ACF Pro

Você sabia que para criar uma página de opções no ACF Pro você só precisa utilizar uma função?

Aqui você vai aprender como é simples e rápido de utilizar a função acf_add_options_page().

Veja também quais são os principais parâmetros para configurar a forma que essa página vai aparecer no admin do WordPress

// Criar página de opções
if( function_exists( 'acf_add_options_page' ) ) {
  acf_add_options_page([
    'menu_title' => 'Tema',
    'page_title' => 'Tema',
    'position' => '4',
    'menu_slug' => 'pagina_opcoes',
    // 'parent_slug' => 'options-general.php',
    'update_button' => 'Atualizar',
    'updated_message' => 'Alterações feitas com sucesso.',
    'icon_url' => 'dashicons-welcome-widgets-menus'
  ]);
}

Clique aqui para ver a documentação do ACF Pro sobre a página de opções.

Se precisa da lista de ícones para personalizar o novo menu de opções você pode escolher em Dashicons no WordPress Developer.

Como criar uma Subpágina No Menu

Este exemplo mostra como criar uma subpágina de opções usando o atributo parent_slug .

add_action('acf/init', 'my_acf_op_init');
function my_acf_op_init() {

    // Verifique se a função existe.
    if( function_exists('acf_add_options_page') ) {

        // Adicionar parente
        $parent = acf_add_options_page(array(
            'page_title'  => __('Theme General Settings'),
            'menu_title'  => __('Theme Settings'),
            'redirect'    => false,
        ));

        // Adicionar subpágina.
        $child = acf_add_options_page(array(
            'page_title'  => __('Social Settings'),
            'menu_title'  => __('Social'),
            'parent_slug' => $parent['menu_slug'],
        ));
    }
}