Ao adicionar um ponto de extremidade REST personalizado, onde você coloca a função endpoint e onde você coloca a chamada de registro de função?

6

Documentação do WordPress, blogueiros e respondentes do StackExchange fizeram um ótimo trabalho ao descrever o código que você escreve para criar um ponto de extremidade REST personalizado, mas não consigo encontrar nenhuma documentação que descreva exatamente ONDE você coloca o código .

Digamos que eu tenha um endpoint que eu queira retornar a string "foo". Da minha leitura, eu implemento uma função como esta:

function my_foo() {
    return "foo";
}

e eu registro a função com uma chamada assim:

add_action( 'rest_api_init', function () {
    register_rest_route( 'mycompany/v1', '/foo/', array(
            'methods' => 'GET',
            'callback' => 'my_foo'
    ) );
} )

Não há nada de difícil nisso, mas pela minha vida eu não consigo descobrir onde colocar isso.

Para o endpoint REST, suponho que colocaria a função dentro de um arquivo em:

wp-json/mycompany/v1/foo.php

mas seria bom saber com certeza.

Quanto à chamada add_action() , também estou tendo um tempo para descobrir onde a ligação vai.

A documentação aqui não descreve onde esses chamadas devem viver, assim como o artigo aqui (e muitas outras fontes que encontrei).

Se alguém pudesse apontar onde esses locais estão documentados, ou que estou perdendo algo bem na frente, seria ótimo!

    
por Rjak 19.05.2017 / 20:37

1 resposta

4

Se você estiver desenvolvendo um tema, o local apropriado para colocar seu código, neste caso, será o arquivo functions.php do seu tema. Este é o arquivo que certamente será executado quando seu site estiver sendo acessado.

Se você está desenvolvendo um plugin, você pode colocar seu código dentro de um arquivo php (como foo.php ) e então incluir / exigir no seu template, o que for mais adequado às suas necessidades.

Não salve ou altere QUALQUER arquivo fora da pasta wp-content ou de seus plug-ins. Eles serão substituídos por atualizações do WordPress e terão a chance de serem identificados como malware por alguns plug-ins / aplicativos de servidor antimalware.

Você pode colocar seu código diretamente dentro do arquivo principal do seu plugin, mas eu prefiro categorizar as funções caso eu precise acessá-las ou modificá-las rapidamente mais tarde (opinião pessoal).

    
por Jack Johansson 19.05.2017 / 21:25