Fichas
Custom Menu Development Wordpress
Fichas del conjunto (12)
- 1Onde podemos encontrar as senhas de banco de dados e user name?na pasta principal da instalação do Wordpress vamos ter o arquivo wp-config.php lá devemos buscar as constantes: DB_PASSWORD - MySQL database, DB_USER - MySQL user
(local user, não sei se pega em live servers) - 2Como seria a convenção para salvar items do menu?Por padrão nosso 'plugin' ou library vai vir com:
menu-item-custom em convenção para salvar dados no banco de dados, devemos alterar para _menu_item_$s conforme a convenção correta para evitar comportamentos estranhos...
Colocando o '_' nos escondemos esses campos criados no menu de aparecerem como custom_field de um post normal. - 3Como podemos instalar o 'wp-menu-item-custom-fields' ? - disponível no githubpodemos adicionar baixando os arquivos e adicionando como plugin ou colocando em nossa pasta raiz do thema, como uma biblioteca, então pegamos o codigo do arquivo 'walker-nav-menu-edit.php' e colamos em nosso functions.php
para adicionar uma livraria usamos o comando, require_once () em functions.php
//comando disponível na documentação. - 4Quais configurações fazemos em nossa function.php para criar 'custom fields' em nossos menu items do wp-admin?devemos custar por addcionar novo custom fields no arquivo copiado, vamos lembrar que ele será salvo no banco de dados como um meta dado - wp_postmeta -
- 5Quais são os métodos existems no 'walker' e o que eles representam?Métodos abstrados são métodos que não tem funcionalidades por eles mesmo, são mais como uma framework.
start_lvl( &$output, $depth = 0, $args = array() )
"Start Level". This method is run when the walker reaches the start of a new "branch" in the tree structure. Generally, this method is used to add the opening tag of a container HTML element (such as , , or ) to $output.
end_lvl( &$output, $depth = 0, $args = array() )
"End Level". This method is run when the walker reaches the end of a "branch" in the tree structure. Generally, this method is used to add the closing tag of a container HTML element (such as , , or
) to $output.
start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 )
"Start Element". Generally, this method is used to add the opening HTML tag for a single tree item (such as , , or ) to $output.
end_el( &$output, $object, $depth = 0, $args = array() )
"End Element". Generally, this method is used to add any closing HTML tag for a single tree item (such as
, , or ) to $output. Not - 6Onde podemos encontrar mais informações sobre o walker method?https://codex.wordpress.org/Class_Reference/Walker
- 7Qual elemento é formado já com walker_class no wordpress?O proprio nav_menu é criado a partir da class walker. podemos ver isso em wp-menu-template.php na pasta raiz do wordpress.
- 8Como fazemos o setup de um 'custom walker'?1º Adicionamos a pasta inc(de include) o arquivo include-walker.php
2º então copiamos e o inicio do arquivo nav-menu-template.php - dentro do nosso arquivo.
class WPT_Custom_Walker_Nav_Menu extends Walker {}
3º incluimos nosso arquivo em nossa functions.php - require_once dirname( __FILE__ ) . '/inc/custom-walker.php';
4º então para usar, nos argumentos do nosso menu, que passamos como parâmetro para criação ,vamos usar
'walker' => new WPT_Custom_Walker_Nav_Menu //criando um objeto dessa classe.
*Vamos ver que uma serie de erros surgiram, mas se copiarmos tudo de 'nav-menu-template.php' em nosso arquivo inc, vamos ver que estamos agora controlando o menu completamente.
AGORA PODEMOS CUSTOMIZAR O QUE QUISERMOS, BASEADOS NO WORDPRESS PADRÃO. - 9Como obtemos os dados do custom fields, anteriormente criados de nosso banco de dados para serem usados em nosso 'custom walker' menus?a função que vamos utilizar é get_post_meta()
Ela possui como parametro $meta_values = get_post_meta( $post_id, $key, $single);
Então por exemplo, vamos em nosso start_el que esta iniciando o nosso item dentro do menu, e vamos colocar no parâmetro $item uma nova propriedade, que é a que criamos no custom-field do menu:
$item->description = get_post_post_meta( $item->ID, '_menu_item_field_descrition', true ); - o true não retorna um array, somente strings.
a partir de então podemos acessar os dados e introduzir onde quisermos com $item->description - 10Qual a diferença entre var_dump e var_export?*var_dump is for debugging purposes.
*var_export prints valid php code. Useful if you calculated some values and want the results as a constant in another script. Note that var_export can not handle reference cycles/recursive arrays, whereas var_dump and print_r check for these. - 11Se não queremos copiar e colar o arquivo do wp_include inteiro, mas sim modificar somente o que queremos, como podemos configurar nosso arquivo em /inc/?devemos então usar extend:
então devemos usar no arquivo no /inc/:
class own_walker_nav_menu extends Walker_Nav_Menu
e não extends Walker...
isso já traz as bases para nosso arquivo, sem a necessidade de copiar nada. - 12Onde podemos controlar as classes e icones que são introduzidos em nosso walker nav bootstrap? (disponível no github)Devemos adicionar em title-atribute, ele vai avaliar o que foi escrito e aplicar uma mudança de classe com bootstrap ou adicionar um icone do components.
https://github.com/twittem/wp-bootstrap-navwalker
adicionamos da mesma forma que nosso navwalker... passando como parâmetro no menu walker=> new ...
Información
- Descripción
- asa (WordPress ) Technical Skills Fichas sobre Custom Menu Development Wordpress, creado por Victor Bini el 01/02/2017.
- Creado por
- Victor Bini · feb 2017
- Actualizado
- 1 feb 2017
- Visitas
- 2
- Valoración