Estou codificando um widget e gostaria que o usuário pudesse escolher um link como você pode ao editar postagens ou páginas regulares (quando você clica no pequeno ícone do link e obtém a funcionalidade de pesquisa AJAX no pop-up ) Alguém sabe como eu faço isso funcionar? Eu tenho um botão HTML ao qual gostaria de anexar e clicar, e um campo para o valor digitado.
No class-wp-editor.php, encontrei algumas coisas interessantes e me perguntei se poderia precisar desses arquivos ..?
wp_enqueue_script('wp-fullscreen');
wp_enqueue_script('wplink');
Na chamada fullscreen.link();
, como o arquivo mencionado acima, recebo este erro:
Uncaught ReferenceError: wpActiveEditor is not defined
..e estou perplexo por enquanto, porque o JS que faz referência a essa variável parece louco para mim.
Importa-se de me apontar na direção certa? Eu adoraria fazer isso funcionar, ele criará uma interface de usuário matadora para meus widgets!
------editar-------
Até agora, não há muito código, além das inclusões de script que afirmei anteriormente;
<label for="<?php echo $this->get_field_name('link'); ?>">Link URL (including http://) : </label>
<input type="text" id="<?php echo $this->get_field_id('link'); ?>" name="<?php echo $this->get_field_name('link'); ?>" value="<?php if(isset($link)) echo esc_attr($link); ?>" class="widefat" />
<button class="secondary" id="choose_link">Link Browser</button>
..a parte do JS que deve acionar o script de link para abrir;
linkBrowserButton.on("click", function(e){
e.preventDefault();
fullscreen.link();
});
wp_editor()
?Respostas:
Invoco o diálogo de link dentro da classe metabox que uso para o desenvolvimento. É um pouco hacky, mas pode ser feito, até que algo mais robusto seja desenvolvido.
Você pode chamar a caixa de link primeiro enfileirando os js necessários e, em seguida, interagindo com os métodos de arquivos wp-link js.
Certifique-se de ter enfileirado o wp-link
1 /
wp_enqueue_script( 'wp-link' );
2 / Configure sua interface do usuário. Normalmente, uso um botão para chamar o diálogo de link e um campo de texto para manipular o URL dos links.
3 / Chamar diálogo de link
4 // enfileirar scripts. Adicione o seguinte ao seu arquivo functions.php e ajuste os nomes / caminhos dos arquivos para adequá-los.
Deveria fazê-lo. Eu uso a mesma abordagem na minha classe metabox e parece funcionar bem.
fonte
Primeiro, eu construí-lo de forma semelhante à funcionalidade do link no WordPress: um campo de texto de entrada, resultados, selecione a funcionalidade e o botão enviar (adicionar link).
Ajax - isso é acionado quando o texto é inserido na entrada, retornando um conjunto de resultados com base no termo da pesquisa. Veja o que fizemos com o nosso plugin de pesquisa rápida , WP Jarvis. Você só precisa configurar a chamada ajax para atingir o ajaxurl (admin-ajax.php) e definir um gancho de ação no seu php para executar a consulta e repetir os resultados no formato json. Você deseja que os resultados incluam título, pós-tipo e link permanente para cada resultado. Leia mais sobre o ajax em plugins .
Por fim, a seleção do resultado no qual você deseja obter o link permanente do objeto json e inserir no campo do widget.
Sei que essa não é uma resposta completa, mas espero que ajude.
fonte