Quero permitir vírgulas nos nomes de tags? Por exemplo, "hello, world"
ou "portland, or"
mas o Wordpress continua separando-os. Eu posso fazer isso na página de categorias:
imagem http://img839.imageshack.us/img839/6869/picturepp.png
E isso mostra-se bem. Mas qualquer coisa adicionada na barra lateral das postagens não aparece bem aqui:
imagem http://img52.imageshack.us/img52/4950/picture1oax.png
Há alguma discussão sobre isso aqui: http://core.trac.wordpress.org/ticket/14691, mas parece que isso pode não ser resolvido, pelo menos por um tempo.
Enquanto isso, estou procurando uma solução mais fácil do que adicionar categorias na página de categorias.
Tentei pesquisar plug-ins e não vi nenhum que fosse útil. Há alguns que lidam com a substituição de vírgulas por outros caracteres ao exibir uma lista de categorias ou tags, mas não vejo plugins que permitam ao usuário substituir o separador padrão.
Não me importo se tenho que consertar o núcleo. Idealmente, eu poderia escrever um plug-in, mas depois de analisar alguns dos códigos, não consigo descobrir onde isso é tratado.
Alguém tem uma solução, ou dicas sobre quais funções e javascript para começar a invadir? Não sei por onde começar a procurar no código.
Respostas:
Não é necessário hackear o núcleo - graças a: HOOKS.
Os ganchos permitem corrigir o problema com uma boa combinação de
Aqui está o código:
Talvez alguns detalhes adicionais na minha postagem do blog sobre esse tópico também ajudem. Http://blog.foobored.com/all/wordpress-tags-with-commas/
Cumprimenta, Andi
fonte
_x( ',', 'tag delimiter' )
para capturar o delimitador real.É possível e muito fácil salvar tags com vírgulas programaticamente.
Ao chamar
wp_set_post_terms( $post_id, $terms, $taxonomy )
, se você fornecer uma sequência, ela será explodida em uma matriz. Se você fornecer seu$terms
como uma matriz, cada item da matriz será fornecido como um termo próprio, sem ser dividido em vários termos.Ambos
wp_insert_post
e subsequentementewp_update_post
usamwp_set_post_terms
quando o$arg
tax_input
está definido.A melhor maneira de criar termos dinamicamente usando a interface do usuário do WordPress Dashboard, pode exigir que você crie sua própria meta box que envie qualquer string, incluindo vírgulas como um único termo. Alguns plug-ins, como o ACF Pro, fazem isso por padrão quando você cria um campo personalizado para salvar a taxonomia e seleciona também para carregar e atribuir os termos quando salvos.
Mesmo quando salvos com uma vírgula, cada parte desses termos com vírgulas ainda pode aparecer como itens separados ao editar a postagem. Nesse caso, talvez seja melhor desativar a interface do usuário padrão e confiar nas meta boxes personalizadas. Isso pode ser feito usando as Opções da tela ao editar um tipo de postagem. As taxonomias personalizadas também podem ser ocultadas na seção de edição rápida ao serem registradas.
fonte
add_filter( 'pre_tax_input', function( $tax_input ) { return (array) $tax_input; } );
no entanto, isso permitirá que você envie apenas um termo por vez.você mal usa um filtro.
Por exemplo, se você deseja adicionar uma vírgula após cada tag em uma nuvem de tags, você pode colocar o seguinte em suas funções.php
fonte
Aqui está a sua solução. Preste atenção na linha 2614:
Dentro de wp-includes / taxonomy.php . Boa sorte em invadir o código. não há gancho. é codificado ... Desculpe. Eu acho que invadir o código é sua única opção por enquanto.
fonte
Vírgulas nos nomes das tags não funcionarão corretamente porque, ao adicionar a tag a uma postagem, o WordPress a analisará como várias palavras-chave, quebrando a vírgula.
Uma correção simples:
Use
,
( o código HTML da vírgula ) em vez de uma vírgula comum.Então:
,
será exibido como uma boa vírgula dentro de postagens, títulos de páginas de tags e vários outros lugares.,
dentro da interface do administrador ao digitar o nome da tag.FYI, usando a entidade HTML,
,
não funciona.fonte