Como excluir “sugestões” de campos personalizados da lista suspensa

3

Quando você usa um campo personalizado padrão no WP, você precisa escrever o nome dos campos de cusotm pela primeira vez.

Na segunda vez que você usa um campo personalizado, ele fica na lista suspensa de campos personalizados. Mas, às vezes, quando você instala plugins, eles estão em muitos campos personalizados.

Esta lista se torna um pouco longa e pode "empurrar" alguns dos meus campos personalizados para fora da lista. Então, alguém sabe como posso remover campos personalizados da minha lista suspensa de maneira fácil?

    
por Demilio 22.11.2012 / 00:07

2 respostas

1

Você pode filtrar a consulta dessas chaves em 'query' . Eu começaria esse filtro o mais tarde possível para evitar efeitos colaterais.

Código de amostra, testado :

add_filter( 'postmeta_form_limit', 'wpse_73543_hide_meta_start' );

function wpse_73543_hide_meta_start( $num )
{
    add_filter( 'query', 'wpse_73543_hide_meta_filter' );

    return $num;
}

function wpse_73543_hide_meta_filter( $query )
{
    // Protect further queries.
    remove_filter( current_filter(), __FUNCTION__ );

    $forbidden = array ( 'the', 'keys', 'you', 'want', 'to', 'hide' );
    $where     = "WHERE meta_key NOT IN('" . join( "', '", $forbidden ) . "') ";
    $find      = "GROUP BY";
    $query     = str_replace( $find, "$where\n$find", $query );

    return $query;
}
    
por fuxia 22.11.2012 / 00:31
0

Não existe uma maneira de filtrar o que aparece lá, você pode ver onde ele consulta as chaves e renderiza esse campo na função meta_form() in wp-admin/includes/template.php , mas você pode ver que ele ignora qualquer chave prefixada com um sublinhado:

HAVING meta_key NOT LIKE '\_%'

isto é o que os plugins devem estar fazendo com quaisquer meta chaves que eles criam para esconder essas chaves do menu.

Você também verá um filtro, postmeta_form_limit , que é definido como 30 por padrão. Você pode aumentar esse número para que as suas chaves sejam pelo menos incluídas na lista e não caiam no final.

Outra opção é criar sua própria meta box para gerenciar meta-dados específicos, em vez de usar a caixa meta de Campos personalizados .

    
por Milo 22.11.2012 / 00:30