php - 按 ACF 日期对帖子进行排序并为每个月添加标题
问题描述
我正在尝试为我的博客文章创建一个存档页面,该页面按通过 ACF 日期选择器字段添加的日期排序。
这是我到目前为止所拥有的:
$args = array(
'post_type' => 'post',
'posts_per_page' => -1,
'orderby' => 'meta_value',
'order' => 'DESC',
'meta_key' => 'datum_artikel',
'meta_value' => date('Ymd',strtotime("today")),
'meta_compare' => '<='
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
echo "<div class='posts'>";
while ( $query->have_posts() ) {
$query->the_post();
$f = get_fields();
$link = ($f['bericht_doorverwijzen'] ?? '' ? $f['bericht_doorverwijzen'] : get_the_permalink());
$img_id = get_post_thumbnail_id();
$date = $f['datum_artikel'];
echo "<div class='post w-1/3'>";
echo "<div class='postWrapper'>";
if(!empty($img_id)) {
$img = Images::get_image_resized($img_id, 397, 230, true);
echo "<a href='".$link."' title='Ga naar ".get_the_title()."'>";
echo '<picture class="img">';
echo '<img src="'.$img[0].'" alt="'.get_post_meta($img_id, '_wp_attachment_image_alt', true).'"/>';
echo '</picture>';
echo "</a>";
}
echo "<div class='content'>";
echo "<h2><a href='".$link."' title='Ga naar ".get_the_title()."'>".get_the_title()."</a></h2>";
if(!empty($date)) {
echo "<p class='date'>". $date ."</p>";
}
echo the_excerpt_max_charlength($charlength = 130);
echo "</div>";
echo "</div>";
echo "</div>";
}
echo "</div>";
}
wp_reset_postdata();
我在网上找到了一些示例,但似乎没有一个适用于我的代码。当月份发生变化时,如何在帖子之间添加月份名称,我可以创建一个包含所有月份和锚点的额外导航,以便跳转到正确的帖子?
解决方案
我在网上找到了另一个示例,似乎可以满足我的需要:
$query = new WP_Query( array(
'post_type' => 'post',
'post_status' => 'publish',
'meta_key' => 'datum_artikel',
'orderby' => 'meta_value',
'order' => 'DESC',
) );
if ( $query->have_posts() ) {
$current_header = "";
echo "<div class='posts'>";
while ( $query->have_posts() ) {
$query->the_post();
$f = get_fields();
$date = $f['datum_artikel'];
$temp_date = get_post_meta( get_the_ID(), 'datum_artikel', true);
$pretty_month = date_i18n("F Y", strtotime($temp_date));
if ($pretty_month != $current_header) {
$current_header = $pretty_month;
echo "<h2>". $pretty_month ."</h2>";
}
$link = ($f['bericht_doorverwijzen'] ?? '' ? $f['bericht_doorverwijzen'] : get_the_permalink());
$img_id = get_post_thumbnail_id();
echo "<div class='post w-1/3'>";
echo "<div class='postWrapper'>";
if(!empty($img_id)) {
$img = Images::get_image_resized($img_id, 397, 230, true);
echo "<a href='".$link."' title='Ga naar ".get_the_title()."'>";
echo '<picture class="img">';
echo '<img src="'.$img[0].'" alt="'.get_post_meta($img_id, '_wp_attachment_image_alt', true).'"/>';
echo '</picture>';
echo "</a>";
}
echo "<div class='content'>";
echo "<h2><a href='".$link."' title='Ga naar ".get_the_title()."'>".get_the_title()."</a></h2>";
if(!empty($date)) {
echo "<p class='date'>". $date ."</p>";
}
echo the_excerpt_max_charlength($charlength = 130);
echo "<a href='".$link."' title='Ga naar ".get_the_title()."' class='link'>Lees meer</a>";
echo "</div>";
echo "</div>";
echo "</div>";
}
echo "</div>";
}
wp_reset_postdata();
推荐阅读
- ibm-cloud - 如何在 Bluemix 上为 Node-RED 安装 node-red-contrib-cep
- function - 是否可以远程调试预编译(不是 CSX)的 Azure Functions?
- r - 如何在 docker 中加快 R 包的安装速度
- hybris - “FacetSearchException:没有定义名为 'myBean' 的 bean”在 BackOffice 中访问 CS
- protocol-buffers - 使用 Flink 运行的 Apache Beam 抛出 NoSuchMethodError
- javascript - 如何编写一个 js 脚本来使表单中的数据导入无误
- c# - EF 关系 - 由于列表而无法映射
原始 - f# - FParsec - 如何解析由管道分隔的字符串?
- python - 从 python 异常中杀死 Bash 脚本
- c++ - C++/CLI 访问字符串::来自非 CLI 代码的格式