Como montar um formulário de busca no WordPress, filtrando por categoria ou taxonomia


Postado em 10 de maio de 2016 por | Categorias: Busca | Tags: , , | Sem comentários » | Comentar


Nos temas de WordPress é comum ter o arquivo searchform.php que possui o formulário de busca nativo do sistema. Neste artigo vamos ver como editar esse formulário colocando um filtro por categoria ou taxonomia automaticamente se o visitante estiver na página de categoria ou de taxonomia do site.

Código do formulário de busca (searchform.php)

<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">
    <input type="text" name="s" id="s" class="input_busca" value="busque aqui" />
    <input type="submit" name="submit" id="searchsubmit" class="input_busca_enviar" value="Buscar" />
</form>

Primeiro é necessário determinar se o visitantes esta na página de categoria (category.php) ou em uma página de taxonomia (taxonomy.php). Depois altere o formulário de busca inserindo os campos hidden para categoria e taxonomia, estes campos vão ser os filtros da busca, abaixo o código completo:

<?php
// pega Slug e ID da categoria corrente
$categoria = get_term_by('name', single_cat_title('',false), 'category'); 
$categoria_sel = $categoria->slug;
$categoria_id_sel = get_query_var('cat');

// pega Slug da taxonomia corrente
$coluna = get_term_by('name', single_cat_title('',false), 'coluna'); 
$coluna_sel = $coluna->slug;
?>
<form role="search" method="get" action="<?php echo esc_url( home_url( '/' ) ); ?>">
    <input type="search" placeholder="Para onde você quer ir?" value="" name="s" title="Para onde você quer ir?">
    <?php if ($categoria_sel != ""){ ?>
        <input type="hidden" name="cat" value="<?php echo $categoria_id_sel; ?>" />
    <?php } ?>

    <?php if ($coluna_sel != ""){ ?>
        <input type="hidden" name="taxonomy" value="coluna" />
        <input type="hidden" name="term" value="<?php echo $coluna_sel; ?>" />
    <?php } ?>                    
    <button type="submit" class="fa fa-search t t-op"></button>
</form>

Obs.: o nome “coluna” que aparece no código é o nome da taxonomia personalizada, basta trocar para o nome da taxonomia criada em seu site.

 

Share

Como fazer um Querypost reverso para o campo personalizado tipo relacional no plug-in Advanced Custom Fields


Postado em 26 de maio de 2015 por | Categorias: Advanced Custom Fields | 2 Comentários » | Comentar


Na imagem abaixo temos o exemplo de um post de um blog com duas receitas relacionadas:

exemplo-de-custom-post-relacionado-no-wordpress

Para criar esta função no Blog, primeiro é necessário criar um custom post chamado receitas (não vamos descrever aqui o processo de criação dos custom-post, consulte Function Reference/register post type). Para fazer a relação entre os dois posts foi usado o plug-in Advanced Custom Fields, através dele é possível  criar um campo relacional na área de posts do blog, permitindo o usuário selecionar posts do custom post receitas. Abaixo a imagem da criação do campo relacional no plug-in Advaced Custom Fields:

campo-relacional-Advanced-Custom-Fields-receita-relacionada-no-post
Na tela de edição e criação de posts do WordPress, o campo relacional aparece da seguinte forma:

campo-relacional-Advanced-Custom-Fields-receita-relacionada

Abaixo o código que exibe as receitas relacionadas na página do post. Este código deve ser inserido no arquivo single.php após fechar a query de post que exibe o conteúdo da página.

<?php
// puxa as receitas relacionadas
$posts = get_field('receita_relacionada');
if( $posts ): ?>
<div>
<h3>Receitas relacionadas</h3>
<ul>
<?php foreach( $posts as $post): ?>
<?php setup_postdata($post); ?>
<li>
<div>
<?php if ( has_post_thumbnail() ) { ?>
<?php get_the_image( array( 'custom_key' => array( 'thumbnail' ), 'default_size' => 'thumbnail', 'width' => '310', 'height' => '150' ) );
} else { ?>
<img src="<? bloginfo('stylesheet_directory'); ?>/images/thumb_padrao.jpg" width="310" height="149"/>
<?php } ?>
</div>
<div>
<h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
<?php the_excerpt(); ?>
</div>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php wp_reset_postdata(); ?>
<?php endif; ?>

Quando estamos na página da receita temos a exibição do post pai da relação. Deste modo temos que fazer a query inversa ao post relacionado, ou seja, vamos exibir o post que carrega a função de relação entre as duas postagens, exemplo na iamgem:

pagina-receita-post-relacionado

Para criar a área Veja também ilustrada na imagem acima, insira o código abaixo no arquivo single-receitas.php. É importante que o código que faz a relação inversa esteja dentro do loop principal da página (if (have_posts()) : while (have_posts()) : the_post()):

<?php
// loop inicial que pega o conteúdo do custom post receita
if (have_posts()) : while (have_posts()) : the_post(); ?>

<h2><?php the_title(); ?></h2>

<?php the_content(); ?>

<?php
/*
*  Pega post reverso do campo relacionado com o post do blog
*/

$posts_relacionados = get_posts(array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'receita_relacionada', // nome do campo relacional
'value' => '"' . get_the_ID() . '"',
'compare' => 'LIKE'
)
)
));

?>

<?php if( $posts_relacionados ): ?>
<div>
<h3>Veja tamb&eacute;m</h3>
<ul>
<?php foreach( $posts_relacionados as $doctor ): ?>
<li>
<div>
<?php

if ( has_post_thumbnail( $doctor->ID ) ) {
$src = wp_get_attachment_image_src( get_post_thumbnail_id( $doctor->ID ), thumbnail );
?>
<img src="<?php echo $src[0]; ?>" width="310" height="150"/>
<?php
} else {
?>
<img src="<? bloginfo('stylesheet_directory'); ?>/images/thumb_padrao.jpg" width="310" height="149"/>
<?php } ?>
</div>
<div>
<h4><a href="<?php echo get_permalink( $doctor->ID ); ?>"><?php echo get_the_title( $doctor->ID ); ?></a></h4>
<?php the_excerpt(); ?>
</li>
<?php endforeach; ?>

</ul>
</div>
<?php endif; ?>
<?php endwhile;?>
<?php endif; ?>

Share

Queryposts na página de categorias ou tags no WordPress


Postado em 18 de setembro de 2014 por | Categorias: Categorias, Loop no Wordpress, Queryposts | Tags: | Sem comentários » | Comentar


Exemplo de como criar uma chamada de categorias manualmente via queryposts no arquivo category.php:

// Pega categoria corrente através da URL
$endereco = $_SERVER ['REQUEST_URI'];
 // Retira barras e o nome category do endereço
 $categoria_selecionada = substr($endereco, 15, -1);

query_posts( array( 'post_type' => 'post', 'orderby' => 'date', 'order' => 'DESC',
 'category_name' => $categoria_selecionada, 'showposts' => -1 ) );

if (have_posts()) :  while (have_posts()) : the_post();

the_title();
 the_excerpt();

endwhile; endif;

Exemplo de como criar uma chamada de Tags manualmente via queryposts no arquivo tag.php:

// Pega TAG corrente através da URL
$endereco = $_SERVER ['REQUEST_URI'];
 // Retira barras e o nome tag do endereço
 $tag_selecionada = substr($endereco, 10, -1);

query_posts( array( 'post_type' => 'post', 'orderby' => 'date', 'order' => 'DESC',
 'tag' => $tag_selecionada, 'showposts' => -1 ) );

if (have_posts()) :  while (have_posts()) : the_post();

the_title();
 the_excerpt();

endwhile; endif;

Share

Como pegar o caminho da imagem destacada no WordPress


Postado em 26 de julho de 2013 por | Categorias: Thumbnail | Tags: | 1 Comentário » | Comentar


Use o comando abaixo para pegar o caminho da imagem destacada de um post ou página no WordPress. Este comando deve ser utilizado após o comando the_post().

//Get the Thumbnail URL
$src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'slider_capa' );
Share

Listar os posts de uma lista de taxonomias


Postado em 26 de julho de 2013 por | Categorias: Taxonomy | Tags: | Sem comentários » | Comentar


Use o código abaixo para listar os posts de uma lista de taxonomias. Mude o nome da taxonomia na linha:  ‘taxonomy’ => ‘estado’ para o nome da taxonomia que você desejar. Mude também na linha do queryposts, onde esta ‘estado’=> $category->slug, mude o nome estado para o nome da taxonomia que você vai usar.

<?php
$args=array(
// Define a taxonomia chamada estado
'parent' => '0',
'orderby' => 'date',
'taxonomy' => 'estado',
'order' => 'DESC'
);
$categories=get_categories($args);
foreach($categories as $category) {
?>

<h2><?php echo $category->name; ?></h2>

<?php query_posts( array( 'post_type' => 'cidades',  'orderby' => 'title', 'order' => 'ASC', 'estado'=> $category->slug, 'showposts' => -1) );?>

<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>

<h3><a href="<?php the_permalink(); ?>" title="Veja mais detalhes <?php the_title_attribute(); ?>" rel="bookmark"><?php the_title(); ?></a></h3>

<?php endwhile; endif; ?>

<?php }  ?>
Share

Hack CSS para Google Crhome


Postado em 16 de outubro de 2012 por | Categorias: CSS | Sem comentários » | Comentar


Em muitos poucos casos tive que usar um hack para ajustar alinhamento de algumas div´s no Google Chrome. A solução foi usar o código: @media screen and (-webkit-min-device-pixel-ratio:0) { } dentro do meu arquivo de CSS.
Exemplo:

/*HACK PARA GOOGLE CHORME*/
@media screen and (-webkit-min-device-pixel-ratio:0)
{
.s-inscricao{
background-image: url("images/m-selecionado.png");
background-repeat: no-repeat;
height: 45px;
left: 665px;
width: 66px;
}
.compartilhe {
clear: both;
color: #6C7679;
display: block;
font-size: 10px;
letter-spacing: 1px;
margin: -18px 0 9px 359px;
}
}

Como as duas classes .s-inscricao e .compartilhe já existiam no CSS para outros navegadores, coloquei esse código no final do arquivo CSS para que o Google Crhome interpretar o HACK sem entrar em conflito com as outras classes de mesmo nome.

Share

Código para exibir título na tag:title no WordPress


Postado em 30 de março de 2012 por | Categorias: Úteis | Sem comentários » | Comentar


O ódigo abaixo serve para fazer correções na primeira versão do tema padrão do WordPress Twentyeleven.

<title><?php
global $page, $paged;
$site_description = get_bloginfo( 'description', 'display' );

if ( is_home() || is_front_page()) {
bloginfo( 'name' );
echo " | $site_description";
} else {
wp_title( '', true, 'right' );

// Add a page number if necessary:
if ( $paged >= 2 || $page >= 2 )
echo ' | ' . sprintf( __( 'Page %s', 'twentyeleven' ), max( $paged, $page ) );
}
?></title>
Share

Excluir posts na função query_posts do WordPress


Postado em 23 de janeiro de 2012 por | Categorias: Posts | Tags: | Sem comentários » | Comentar


Para excluir o post aberto da página atual de uma lista na mesma tela, use o comando abaixo:

<?php $id_post = get_the_ID(); ?>
<?php query_posts( array( 'post_type' => 'procedimento',  'orderby' => 'date', 'order' => 'DESC', 'showposts' => 3, 'post__not_in' => array($id_post)) );?>

<?php if(have_posts()) : ?><?php while(have_posts()) : the_post() ?>
....

O comando ‘post__not_in’ => array($id_post) pode ser usado com um array de posts para serem excluídos da página.

Share

Função para limitar títulos do post no WordPress


Postado em 27 de dezembro de 2011 por | Categorias: Functions, Páginas | Tags: , , | 2 Comentários » | Comentar


Para criar uma função de limitar a quantidade de caracteres em um título nos arquivos do WordPress, coloque o código abaixo no arquivo functions.php do seu tema:

//////////////////////////////////////////////////////////////////////////
///     Limita o título dos posts na quantidade de caracteres desejado  /////
////////////////////////////////////////////////////////////////////////

function title_limite($maximo) {
$title = get_the_title();
if ( strlen($title) > $maximo ) {
$continua = '...';
}
$title = mb_substr( $title, 0, $maximo, 'UTF-8' );
echo $title.$continua;
}
// para chamar a função use title_limite(20);

Para chamar a função use o comando title_limite(), coloque a quantidade de caracteres dentro dos parenteses, abaixo um exemplo:

<h2>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark">
<?php title_limite(38); ?>
</a>
</h2>
Share

Diagrama de hierarquia de um template WordPress


Postado em 13 de dezembro de 2011 por | Categorias: Úteis | Tags: | Sem comentários » | Comentar


http://codex.wordpress.org/images/1/18/Template_Hierarchy.png

Share

Paginação no WordPress sem uso de plug-in


Postado em 18 de novembro de 2011 por | Categorias: Úteis | Tags: | 1 Comentário » | Comentar


Coloque o código abaixo no arquivo functions.php do seu tema:

//////////////////////////////////////////////////////////////////////////
///        FUNCAO PARA FAZER PAGINAÇÃO                                  /////
////////////////////////////////////////////////////////////////////////
function wp_corenavi() {
global $wp_query, $wp_rewrite;
$pages = '';
$max = $wp_query->max_num_pages;
if (!$current = get_query_var('paged')) $current = 1;
$a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));
$a['total'] = $max;
$a['current'] = $current;

$total = 1; //1 - display the text "Page N of N", 0 - not display
$a['mid_size'] = 5; //how many links to show on the left and right of the current
$a['end_size'] = 1; //how many links to show in the beginning and end
$a['prev_text'] = '&laquo; Anterior'; //text of the "Previous page" link
$a['next_text'] = 'Próxima &raquo;'; //text of the "Next page" link

if ($max > 1) echo '<div>';
if ($total == 1 && $max > 1) $pages = '<span>Página ' . $current . ' de ' . $max . '</span>'."\r\n";
echo $pages . paginate_links($a);
if ($max > 1) echo '</div>';
} 

Para ativar a função nas páginas que devem entrar a páginação coloque o código abaixo:

 if (function_exists('wp_corenavi')) wp_corenavi(); 
Share

Criar um Breadcrumbs (menu migalhas) sem plug-in no WordPress


Postado em 11 de novembro de 2011 por | Categorias: Úteis | 4 Comentários » | Comentar


Para criar breadcrumbs wordpress em seu site copie e cole o código abaixo no arquivo functions.php do seu tema:

////////////////////////////////////////////////////////////////////////
// BREADCRUMBS
////////////////////////////////////////////////////////////////////////

function dimox_breadcrumbs() {

$delimiter = '&raquo;';
$home = 'Início'; // text for the 'Home' link
$before = '<span>'; // tag before the current crumb
$after = '</span>'; // tag after the current crumb

if ( !is_home() && !is_front_page() || is_paged() ) {

echo '<div id="crumbs">';

global $post;
$homeLink = get_bloginfo('url');
echo '<a href="' . $homeLink . '" rel="home" title="' . $home . '">' . $home . '</a> ' . $delimiter . ' ';

if ( is_category() ) {
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat->parent);
if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
echo $before . 'Archive by category "' . single_cat_title('', false) . '"' . $after;

} elseif ( is_day() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '" rel="bookmark" title="'.get_the_time('Y').'">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '" rel="bookmark" title="'.get_the_time('F').'">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
echo $before . get_the_time('d') . $after;

} elseif ( is_month() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '" rel="bookmark" title="'.get_the_time('Y').'">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo $before . get_the_time('F') . $after;

} elseif ( is_year() ) {
echo $before . get_the_time('Y') . $after;

} elseif ( is_single() && !is_attachment() ) {
if ( get_post_type() != 'post' ) {
$post_type = get_post_type_object(get_post_type());
$slug = $post_type->rewrite;
echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/" rel="bookmark" title="'.$post_type->labels->singular_name.'">' . $post_type->labels->singular_name . '</a> ' . $delimiter . ' ';
echo $before . get_the_title() . $after;
} else {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo $before . get_the_title() . $after;
}

} elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
$post_type = get_post_type_object(get_post_type());
echo $before . $post_type->labels->singular_name . $after;

} elseif ( is_attachment() ) {
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo '<a href="' . get_permalink($parent) . '" rel="bookmark" title="'.$parent->post_title.'">' . $parent->post_title . '</a> ' . $delimiter . ' ';
echo $before . get_the_title() . $after;

} elseif ( is_page() && !$post->post_parent ) {
echo $before . get_the_title() . $after;

} elseif ( is_page() && $post->post_parent ) {
$parent_id  = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '" rel="bookmark" title="'.get_the_title($page->ID).'">' . get_the_title($page->ID) . '</a>';
$parent_id  = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
echo $before . get_the_title() . $after;

} elseif ( is_search() ) {
echo $before . 'Search results for "' . get_search_query() . '"' . $after;

} elseif ( is_tag() ) {
echo $before . 'Posts tagged "' . single_tag_title('', false) . '"' . $after;

} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $before . 'Articles posted by ' . $userdata->display_name . $after;

} elseif ( is_404() ) {
echo $before . 'Error 404' . $after;
}

if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo __('Page') . ' ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}

echo '</div>';

}
} // end dimox_breadcrumbs()

Para exibir o menu Breadcrumbie no site, coloque o código abaixo nos arquivos do tema no qual deseja exibir o menu. Normalmente coloco nos arquivos page.php, single.php e outros.

<?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?>

Fonte:
http://dimox.net/wordpress-pagination-without-a-plugin-wp-pagenavi-alternative/

Share

Registrar campos personalizados em comum para páginas, posts e customposts no WordPress


Postado em 18 de outubro de 2011 por | Categorias: Custom Post Types | Tags: | Sem comentários » | Comentar


O código abaixo deve ser colocado no arquivo functions.php do seu tema. O código abaixo registra três campos personalizados referêntes a uma data (Dia, Mês e Ano) nos posts, nas páginas e em um custompost chamado novidades.

// Registrando um campos personalizados para todas as páginas e posts do sistema
$theme_metaboxes_restritos = array(
"dia" => array (
"name"      => "dia",
"default"   => "",
"label"     => __('Selecione o dia', 'mytheme'),
"type"      => "select",
"stilo"      => "width:150px;"
),

"mes" => array (
"name"      => "mes",
"default"   => "",
"label"     => __('Selecione o mês', 'mytheme'),
"type"      => "select",
"stilo"      => "width:250px;"
),

"ano" => array (
"name"      => "ano",
"default"   => "",
"label"     => __('Selecione o ano', 'mytheme'),
"type"      => "select",
"stilo"      => "width:150px;"
)

);

// Registra um custom post select
function custom_fields_box_content_restritos() {
global $post, $theme_metaboxes_restritos;
foreach ($theme_metaboxes_restritos as $theme_metabox) {
$theme_metaboxvalue = get_post_meta($post->ID,$theme_metabox["name"],true);
if ($theme_metaboxvalue == "" || !isset($theme_metaboxvalue)) {
$theme_metaboxvalue = $theme_metabox['default'];
}

echo "\t".'<p>';
echo "\t\t".'<label for="'.$theme_metabox['name'].'"style="font-weight:bold; ">'.$theme_metabox['label'].':</label><br>'."\n";
echo "\t\t".'<select name="'.$theme_metabox['name'].'" id="'.$theme_metabox['name'].'" style="'.$theme_metabox['stilo'].'"/>'."\n";

if ($theme_metabox['name'] == "dia"){
if($theme_metaboxvalue != "") {
echo "\t\t".'<option value="'.$theme_metaboxvalue.'" selected />'.$theme_metaboxvalue.'</option>'."\n";
echo "\t\t".'<option value="" />Selecione...</option>'."\n";
}
else echo "\t\t".'<option value="" selected />Selecione...</option>'."\n";

echo "\t\t".'<option value="1" />1</option>'."\n";
echo "\t\t".'<option value="2" />2</option>'."\n";
echo "\t\t".'<option value="3" />3</option>'."\n";
echo "\t\t".'<option value="4" />4</option>'."\n";
echo "\t\t".'<option value="5" />5</option>'."\n";
echo "\t\t".'<option value="6" />6</option>'."\n";
echo "\t\t".'<option value="7" />7</option>'."\n";
echo "\t\t".'<option value="8" />8</option>'."\n";
echo "\t\t".'<option value="9" />9</option>'."\n";
echo "\t\t".'<option value="10" />10</option>'."\n";
echo "\t\t".'<option value="11" />11</option>'."\n";
echo "\t\t".'<option value="12" />12</option>'."\n";
echo "\t\t".'<option value="13" />13</option>'."\n";
echo "\t\t".'<option value="14" />14</option>'."\n";
echo "\t\t".'<option value="15" />15</option>'."\n";
echo "\t\t".'<option value="16" />16</option>'."\n";
echo "\t\t".'<option value="17" />17</option>'."\n";
echo "\t\t".'<option value="18" />18</option>'."\n";
echo "\t\t".'<option value="19" />19</option>'."\n";
echo "\t\t".'<option value="20" />20</option>'."\n";
echo "\t\t".'<option value="21" />21</option>'."\n";
echo "\t\t".'<option value="22" />22</option>'."\n";
echo "\t\t".'<option value="23" />23</option>'."\n";
echo "\t\t".'<option value="24" />24</option>'."\n";
echo "\t\t".'<option value="25" />25</option>'."\n";
echo "\t\t".'<option value="26" />26</option>'."\n";
echo "\t\t".'<option value="27" />27</option>'."\n";
echo "\t\t".'<option value="28" />28</option>'."\n";
echo "\t\t".'<option value="29" />29</option>'."\n";
echo "\t\t".'<option value="30" />30</option>'."\n";
echo "\t\t".'<option value="31" />31</option>'."\n";
}

if ($theme_metabox['name'] == "mes"){
if($theme_metaboxvalue != "") {
echo "\t\t".'<option value="'.$theme_metaboxvalue.'" selected />'.$theme_metaboxvalue.'</option>'."\n";
echo "\t\t".'<option value="" />Selecione...</option>'."\n";
}
else echo "\t\t".'<option value="" selected />Selecione...</option>'."\n";

echo "\t\t".'<option value="01" />janeiro</option>'."\n";
echo "\t\t".'<option value="02" />fevereiro</option>'."\n";
echo "\t\t".'<option value="03" />março</option>'."\n";
echo "\t\t".'<option value="04" />abril</option>'."\n";
echo "\t\t".'<option value="05" />maio</option>'."\n";
echo "\t\t".'<option value="06" />junho</option>'."\n";
echo "\t\t".'<option value="07" />julho</option>'."\n";
echo "\t\t".'<option value="08" />agosto</option>'."\n";
echo "\t\t".'<option value="09" />setembro</option>'."\n";
echo "\t\t".'<option value="10" />outubro</option>'."\n";
echo "\t\t".'<option value="11" />novembro</option>'."\n";
echo "\t\t".'<option value="12" />dezembro</option>'."\n";
}

if ($theme_metabox['name'] == "ano"){
$ano_seguinte = date("Y") + 1;

if($theme_metaboxvalue != "") {
echo "\t\t".'<option value="'.$theme_metaboxvalue.'" selected />'.$theme_metaboxvalue.'</option>'."\n";

}
else echo "\t\t".'<option value="'.date("Y").'" selected />'.date("Y").'</option>'."\n";
echo "\t\t".'<option value="'.$ano_seguinte.'" />'.$ano_seguinte.'</option>'."\n";

}

echo "\t\t</select></p>\n";
echo "\t\t<p>".$theme_metabox['desc'].'</p>'."\n";
}
}

function custom_fields_box_projetos() {
if ( function_exists('add_meta_box') ) {
add_meta_box('theme-settings',__('Configurações', 'mytheme'),'custom_fields_box_content_restritos','page','normal','high');
add_meta_box('theme-settings',__('Configurações', 'mytheme'),'custom_fields_box_content_restritos','post','normal','high');
add_meta_box('theme-settings',__('Configurações', 'mytheme'),'custom_fields_box_content_restritos','novidades','normal','high');
}
}

add_action('admin_menu', 'custom_fields_box_projetos');

function custom_fields_insert_restritos($pID) {
global $theme_metaboxes_restritos;
foreach ($theme_metaboxes_restritos as $theme_metabox) {
$var = $theme_metabox["name"];
if (isset($_POST[$var])) {
if( get_post_meta( $pID, $theme_metabox["name"] ) == "" )
add_post_meta($pID, $theme_metabox["name"], $_POST[$var], true );
elseif($_POST[$var] != get_post_meta($pID, $theme_metabox["name"], true))
update_post_meta($pID, $theme_metabox["name"], $_POST[$var]);
elseif($_POST[$var] == "")
delete_post_meta($pID, $theme_metabox["name"], get_post_meta($pID, $theme_metabox["name"], true));
}
}
}

add_action('wp_insert_post', 'custom_fields_insert_restritos');

Para pegar os valores dos campos personalizados dentro de posts, páginas ou customposts use o código dentro do loop do WordPress:

 //Pega os campos personalizados
 $dia = get_post_meta($post->ID, 'dia', true);
 $mes = get_post_meta($post->ID, 'mes', true);
 $ano = get_post_meta($post->ID, 'ano', true); 
Share

Usar as funções do WordPress dentro de um arquivo que esta fora do tema


Postado em 6 de outubro de 2011 por | Categorias: Úteis | 1 Comentário » | Comentar


Para usar as funções do WordPress em qualquer arquivo fora do tema basta incluir o arquivo wp-blog-header.php que fica na raiz da instalação do WordPress.  Use o código abaixo:

<?php
 /* Usar as funções do WordPress dentro de um arquivo fora do tema */
 define('WP_USE_THEMES', false);
 require('wp-blog-header.php');
 ?>

Para usar um arquivo que não pertence ao tema que esteja na pasta do tema basta colcoar o caminho completo do arquivo wp-blog-header.php, veja:

<?php
/* Usar as funções do WordPress dentro de um arquivo fora do tema */
define('WP_USE_THEMES', false);
require('../../../wp-blog-header.php');
?>

 

Share

Comandos para sidebar de Blog no WordPress


Postado em 4 de outubro de 2011 por | Categorias: Úteis | Tags: | Sem comentários » | Comentar


<h3>Arquivos</h3>
<ul>
<?php wp_get_archives('type=monthly'); ?>
</ul>

<h3>Categorias</h3>
<ul>
<?php wp_list_categories('title_li=&show_count=1');?>
</ul>

<h3>Links</h3>
<ul>
<?php wp_list_bookmarks('title_li=&categorize=0');?>
</ul>

<h3>Tags</h3>
<p><?php wp_tag_cloud();?></p>

Share

Categorias

Links

Tags

Autor do post bloginfo() Caminho do tema Campos Personalizados Categorias Codificação UTF8 Contac form 7 CSS Custom fields Custom Post Types data Dividir string explode() Formatação de datas Formatação de Hora get_ get_option() get_page_template() get_the_terms get_the_title() Hora IMG is_single() Janelas Links Lista de Categorias Lista de Posts Lista de ùltimos posts location.href Paginação Post_name Query_posts register_sidebar Sidebar the_author_nickname() the_category() the_tags() the_time() Titulo da página UFT8_encode UTF8 UTF8_decode Widgets wp_list_categories() âncoras

Copyright © 2024  |   W-Pedia – Wikipedia Wordpress BR  |  produzido por Henderson C. Torres