- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为一个乐队开发一个网站,您可以在其中添加演出并添加该特定演出中演奏的歌曲。
所以我创建了两种自定义帖子类型:- 演出- 歌曲
我有一个“关系”类型的自定义字段“歌曲”。此字段显示在自定义帖子类型上。这样我就可以将歌曲添加到特定的演出中。这非常有效。
但是我想在该网站的主页上显示一些统计数据:我想计算特定歌曲的播放次数并显示前 10 名。所以我想我必须循环演出自定义帖子类型并计算与“歌曲”的关系。
我认为这可以解决问题:
<?php
$args = array(
'post_type' => 'gig'
);
?>
<?php $loop = new WP_Query($args); ?>
<?php if ( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post(); ?>
<?php
print_r(get_field('songs'))
//$song_count = count(get_field('songs'));
//echo $song_count . " ";
the_title();
?><br />
<?php endwhile; ?>
<?php else: ?>
<!-- No gigs available -->
<?php endif; ?>
<?php wp_reset_postdata(); ?>
您可以在这里找到 print_r 的结果:http://snippi.com/s/njzg3uu
例如:歌曲“A记忆”有两场演出。这就是为什么你可以在数组中找到它两次。歌曲“Wasted”只能找到一次,因为它只有 1 场演出。
最佳答案
您可以使用此代码创建所有歌曲的数组:
<?php
$args = array(
'post_type' => 'gig'
);
$countArray = []; //create an array where you can put all the song id's and the number of times played
?>
<?php $loop = new WP_Query($args); ?>
<?php if ( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post(); ?>
<?php
$posts = get_field('songs');
if( $posts ):
foreach( $posts as $post):
setup_postdata($post);
//if the song id already exists -> count + 1
if (array_key_exists($post->ID, $countArray)){
$countArray[$post->ID]++;
}
else { // otherwise the song is played 1 time
$countArray[$post->ID] = 1;
}
endforeach;
wp_reset_postdata();
endif;
?>
<?php endwhile; ?>
上面的代码将创建一个歌曲的帖子 ID 及其在 post_type“gig”中使用的次数的数组。
现在您可以使用数组 $countArray
并用它做任何你想做的事。在您的示例中,您想对其进行排序,因此您必须执行 arsort($countArray);
这样数组就按照它的值(播放次数)从高到低排序。
然后你必须循环遍历数组: foreach ($countArray as $key => $value) { ?>
<?php echo get_post_permalink($key); //=the permalink of the song ?>
<?php echo get_the_title($key); //= the title of the song ?>
<?php echo $value; //number of times play in a gig ?>
<?php
}
所以完整的代码是:
<?php
$args = array(
'post_type' => 'gig'
);
$countArray = [];
?>
<?php $loop = new WP_Query($args); ?>
<?php if ( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post(); ?>
<?php
$posts = get_field('songs');
if( $posts ):
foreach( $posts as $post):
setup_postdata($post);
if (array_key_exists($post->ID, $countArray)){
$countArray[$post->ID]++;
}
else {
$countArray[$post->ID] = 1;
}
endforeach;
wp_reset_postdata();
endif;
?>
<?php endwhile; ?>
<?php
arsort($countArray);
foreach ($countArray as $key => $value) {
?>
<?php echo get_post_permalink($key); //=the permalink of the song ?>
<?php echo get_the_title($key); //= the title of the song ?>
<?php echo $value; //number of times play in a gig ?>
<?php
}
?>
<?php else: ?>
<!-- No gigs available -->
<?php endif; ?>
<?php wp_reset_postdata(); ?>
关于php - 计算 ACF 中关系帖子的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58800667/
我有一个自定义帖子类型,其中设置了一些 ACF 字段。我还设置了 ACF 选项页面。 我正在尝试更新所有自定义帖子的文本字段,并在“选项”页面更新时,从选项页面中的文本字段中的值更新。。 这是我尝试过
我正在使用 ACF 的 acf/validate_save_post 操作 Hook ,在表单提交并保存为帖子类型之前,使用第 3 方 API 验证来自前端表单的序列号。 如果对第 3 方 API 的
我的团队刚刚改用 acf-json,我们对如何使用 git 的团队处理文件有一些疑问。 问题基本上是,当 .json 文件显示为已修改时,我们是否应该始终提交它们?如果在 pull 后立即同步,每个团
我正在计算股票 yield 的自相关函数。为此,我测试了两个函数,即 Pandas 内置的 autocorr 函数和 statsmodels.tsa 提供的 acf 函数。这是在以下 MWE 中完成的
我在为使用 Php 创建的 Woocommerce 产品分配产品类别时遇到问题。(环境为Wordpress 5.6.1、Woocommerce 5.0、Php 7.4.14、ACF Pro 5.9.5
我正在尝试更改在 R 中生成的 acf 图并且我没有运气。我的目标是在一个图中绘制多个自相关,而不是使用标准直方图,我想将自相关绘制为使用不同颜色的线,因此很容易区分不同的自相关。该图还应包括 95%
我在使用 ACF 方面相当陌生,所以我使用了他们网站上显示的代码来显示我的转发器字段中的内容。 但是,当我尝试显示转发器的内容时,它是空的??这是我的代码,它仍处于试用模式,只是为了看看它是否能正
我想更改这个简单的 acf 绘图将创建的标题,但我不确定该怎么做,因为它默认为变量名称 d.sales2 . AutoCorrelation <- acf(d.sales.2) plot(AutoCo
我正在使用 Advanced Custom Fields (ACF) 并尝试以编程方式将中继器添加到现有组 (group_5621b0871e1b1),但它不起作用。相同的代码适用于文本字段,但不适用
我使用高级自定义字段创建了一个字段,并为包装器属性分配了一个类。但是我还没有找到任何方法/文档如何准确地获取这些信息(如何获取类(class))。 我使用 get_field 来获取该字段的所有值,但
我正在使用 Bootstrap 中的代码片段: https://bootsnipp.com/snippets/featured/material-card-reveal-with-image-eff
我有一些自定义帖子类型“视频”,我向其中添加了一些自定义 ACF 字段(“video_path”、“author_name”和“audio_author”)。我正在以编程方式生成该类型的帖子,如下所示
我在我的 WordPress 网站上使用高级自定义字段插件。我正在页面上显示子页面中中继器字段(“photos_presse”)的第一张图像(“照片”)。这是我正在使用的 php 代码。
我在关注官方guide在 ACF 文档中,但未能正确处理。我正在使用高级自定义字段和自定义帖子类型 UI 插件。 我有一个名为materials 的自定义帖子类型,每个 Material 都有一个
我正在尝试在我的站点中使用来自 ACF 的谷歌地图字段。我有一个 api key 并且正在使用示例代码。我可以在页面上看到 block 元素,但没有内容。 我收到以下错误 google-maps.js
一段时间以来一直在尝试为此找到解决方案,但一直未能想出任何可行的方法。 我的目标是,当您将鼠标悬停在这个特定的 div 上时,背景图像将变为该背景图像的深色版本。我试过使用 filter 属性,但它会
我有一个自定义帖子类型,其中包含一个包含 5 个子字段的转发器字段。我需要重建这些帖子,以便子字段是普通字段,无需复制和粘贴。它们的中继器和字段都显示在帖子中并且具有相同的名称。 有办法做到这一点吗?
我正在制作我的第一个 WordPress 主题,并使用高级自定义字段在主页上创建一个服务部分。 他使用的自定义字段是Repeater字段、Text字段、Textarea字段和Image字段。 我在 c
我仍在学习 php,但无法理解这一点。 对于 Wordpress 中的循环,我想输出一个包含位置的列表,用逗号分隔并以点结尾。 这是我的代码: W
您好,有人知道为什么我的 ACF 没有为我的时间序列绘制滞后最大值吗?对于这个问题,您可以使用 R 中的航空旅客数据。 我的代码是: acf(z.t, lag.max = 40, main = exp
我是一名优秀的程序员,十分优秀!