Eu gostaria que uma interface de campo personalizada aparecesse apenas quando um determinado modelo fosse atribuído a uma página específica do WordPress.
Alguma ideia?
wp-admin
conditional-tags
Jonathan Wold
fonte
fonte
Respostas:
A melhor maneira de abordar essa situação é via JavaScript. Dessa forma, sempre que o valor selecionado for alterado, você poderá ocultar / mostrar instantaneamente a metabox relacionada.
Use
wp_enqueue_script()
emfunctions.php
carregar um arquivo JavaScript personalizado na área de administração:O próprio script, que requer jQuery, simplesmente oculta ou mostra uma metabox com base no valor selecionado na lista suspensa do modelo de página. Neste exemplo, mostro apenas a metabox para postar miniaturas, caso o modelo de página padrão seja selecionado:
E, apenas por diversão, aqui está uma versão mais curta, menos detalhada, do mesmo script:
fonte
Em vez de renderizar o metabox apenas para ocultá-lo com o jQuery, você pode usá-lo. A única diferença é que a ocultação / exibição da metabox requer a seleção de 'Atualizar' após alterar o campo suspenso.
Atualize as linhas 6 e 7 conforme desejado.
fonte