Criador do tópico
lcas
(@lcas)
Não sei se esta informação é relevante, mas pesquisando pela net, vi algumas pessoas comentando sobre o formato da data… no custom field que nomeei como data digito a data exemplo: 24/09/2013 com barras normal… será que isso tem alguma influência? Preciso configurar o formato do custom field ou alterar algum parâmetro para que ele entenda “24/09/2013” como data?
Não sei mais o que pensar… por favor alguém me dá uma forcinha aí…
Criador do tópico
lcas
(@lcas)
Ola Francis,
Agradeço a sua resposta porém não funciona.
Já havia tentando este procedimento que inclusive também está especificado no codex
Porém quando tento fazer da forma que explicou, além de não ter organização pela data dentro do custom field, perco toda a formatação css, os post não são apresentandos resumidos como deve ser na categoria e a paginação deixa de funcionar: ele exibe o mesmo conteúdo se clicar no 1,2,3 e assim por diante.
Estou com a impressão que, tenho que determinar algo no custom field para que ele entenda que aquele campo refere-se a uma data…
tem alguma outra sugestão.
Ajuda ai…
Criador do tópico
lcas
(@lcas)
oLHA SÓ FRANCIS.
usando o seguinte código:
<?php query_posts('orderby=meta_value&order=DESC&meta_key=data&post_type=post&post_per_page=7');?>
Ele organiza não pela data, mas na ordem dos número que estão no custom field. por exemplo: tenho as datas: 26/09/2013; 28/09/2013; 25/10/2013; 13/10/2013
então a ordem dos post fica assim:
28/09/2013;
26/09/2013;
25/10/2013;
13/10/2013;
Porém preciso que fique organizado pela data e não pela ordem dos números de modo que fique assim:
28/09/2013;
26/09/2013;
13/10/2013;
25/10/2013;
entende?
outra coisa que acontece: ele só mostra a primeira página de post. Tenho 3 páginas, em cada uma tem 7 post. porém quando clico no 2, 3, ele aparece os mesmos posts da primeira página….
E aí, alguma idéia? Só falta isso para eu conseguir!!!
Você precisa fazer um while para pegar todas as páginas se não ele só vai buscar na primeira..
Criador do tópico
lcas
(@lcas)
Sera que vc pode me dizer como fazer??? comecei a mexer com wordpress a pouco tempo e estou tentando aprender na prática…
agradeceria então se pudesse me ajudar!
<?php
//Alterar abaixo para seus números category=4&numberposts=10
$agenda = get_posts('category=4&numberposts=10');
<?php
// an empty array
$date_order = '';
if( $agenda ) : ?> <?php foreach( $agenda as $post ) : setup_postdata( $post ); ?>
<?php $custom_date = get_post_custom_values('NOME DO CUSTOM DATA');
if (isset($custom_date[0])) {
$evento = strtotime($custom_date[0]);
} else {
$evento = strtotime($post->post_date_gmt);
}
$date_order[$evento] = $post->ID;
// now the array contain key as date and post ID as value
?>
<?php endforeach; ?>
<?php endif; ?>
// and the second
// order the date in the custom field
ksort($date_order);
foreach ($date_order as $key => $val) {
query_posts('p='.$val);
global $more;
$more = 0;
// the second Loop
while (have_posts()) : the_post(); ?>
// your stuff here
<?php endwhile; ?>
<?php } ?>
Criador do tópico
lcas
(@lcas)
sem sucesso francis.
Não organiza por data e a paginação desaparece! Não teria algo mais simples?
Criador do tópico
lcas
(@lcas)
olha só. pesquisando em sites sobre a questão da data, me deparei com este código:
<? Php
/ *
* Mostrar valor único
* /
>
<p> Postado em: <? php the_field ('date_picker');> </ p>
<? Php
/ *
* Criar PHP objeto DateTime a partir Data Piker Valor
* Neste exemplo, espera que o valor a ser salvo no formato: yymmdd (JS) = Ymd (PHP)
* /
$ Date = DateTime :: createFromFormat ('Ymd', get_field ('date_picker'));
echo $ date -> format ('dm-Y');
/ *
* Encomendar Posts com base no valor Selecionador de Data
* Neste exemplo, espera que o valor a ser salvo no formato: yymmdd (JS) = Ymd (PHP)
* /
$ Posts = get_posts ( gama (
'Meta_key' => 'custom_order', / / nome do campo personalizado
'Orderby' => 'meta_value_num'
'Ordem' => 'ASC'
));
if ($ posts)
{
foreach ($ posts como $ post)
{
setup_postdata ($ post);
/ / ...
}
wp_reset_postdata () / / IMPORTANTE - redefinir o objeto $ post para que o resto da página funciona corretamente
}
/ *
* Exemplos de formato
* /
$ Js = "yymmdd"
$ Php = "Ymd"
$ Js = "dd / mm / aa"
$ Php = "d / m / Y"
$ Js = "AA_MM_DD"
$ Php = "Y_m_d"
>
será que a partir deste código não conseguiria organizar por data?
@icas,
Eu acho que, para organizar facilmente por data, você precisaria gravar os dados do custom fiel no formato YYYY-MM-DD. Você pode mostrá-los como quiser no backend, mas se você os gravar assim, provavelmente não terá problemas.
Criador do tópico
lcas
(@lcas)
Oi Eduardo. Então, ja estou Gravando os dados no formato que vc indicou yyy-mm-dd.
Estou trabalhando a pouco tempo com wordpress, então algumas coisas ainda nao sei fazer, como porexemplo como mostrar no backend a data no formato DD-mm-yyyy, deixar organizados os posts por esta data que estará em custom field sem perder a paginação ?
Por favor me ajuda
Criador do tópico
lcas
(@lcas)
Oi Eduardo.
FINALMENTE CONSEGUI RESOLVER!
Obrigada pela força e sua dica foi primordial para que eu conseguisse:
Deixo aqui a solução que consegui caso alguém precise!
ORDENAÇÃO POR DATA NO CUSTOM FIELD
Antes do loop inseri a seguinte query_post:
<?php query_posts('post_type=post&post_per_page=7&orderby=meta_value&order=ASC&meta_key=data'); ?>
para que o wordpress entendesse o meta_value do custom field como data, gravei os dados no formato YYYY-MM-DD como você me sugeriu e para mostralos no backend com o formato DD-MM-YYYY configurei o campo de exibição do custom field da seguinte forma:
<?php if($data = get_post_meta($post->ID, 'data', $single = true)); {echo "Data: ";}; echo date("d-m-Y", strtotime( $data ));?>
Tudo ok organizado por data, porém surgiu um novo problema 🙁
A paginação não funcionava…
Estava usando o plugin pagenavi. Removi o plugin, criei uma função de paginação e chamei-a logo após o loop. Dei uma pesquisada e peguei uma dica para adicionar mais um comando de paginação e uma informação na query_posts:
e ficou assim:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php query_posts("cat=42&showposts=6&paged=$paged&post_type=post&orderby=meta_value&order=ASC&meta_key=data"); ?>
<?php if (have_posts()): while (have_posts()) : the_post();?>
<?php the_title();?>
<?php the_excerpt();?>
<?php if($data = get_post_meta($post->ID, 'data', $single = true)); {echo "Data: ";}; echo date("d-m-Y", strtotime( $data ));?>
<?php endwhile; else:?>
<?php endif;?>
<div class="paginator">
<?php if (function_exists('pagination_funtion')) pagination_funtion(); ?>
</div>
tudo funcionando perfeitamente! Vou dormir feliz hoje, mais uma etapa vencida.
Ae, show de bola! Que bom que deu certo.
Olá Icas, estou precisando colocar no meu site a mesma função que você conseguiu.
Poderia me ajudar?
Vi que você deixou os códigos, porém gostaria de saber como você fez, você add em algum modelo existem, você criou um específico ou somente adicionou o código na página que gostaria que aparecesse?
Poderia dar mais detalhes sobre a implementação, também não tenho muita experiencia com wordpress.
Abraço!