我正在使用SitePoint post创建自定义帖子类型的帖子系列,并为帖子序列号创建自定义框。
下面的函数提供在特定分类中发布的所有帖子的列表。问题是它还列出了已删除和隐藏的帖子:
function sitepoint_post_series_content_filter($content) {
$slug = "sitepoint-postseries";
if ($slug != get_post_type()) {
return $content;
}
$post_series_list = get_option("post_series_" . get_the_ID() . "_ids", "");
$post_series_list_array = explode(',', $post_series_list);
$post_series_serial_number = array();
foreach ($post_series_list_array as $key => $value) {
$serial_number = get_post_meta($value, "sitepoint-postseries-serial-number", true);
$post_series_serial_number[$value] = $serial_number;
}
asort($post_series_serial_number);
$html = "<ul class='sitepoint-post-series'>";
foreach ($post_series_serial_number as $key => $value) {
$post = get_post($key);
$title = $post->post_title;
$html = $html . "<li><h3><a href='" . get_permalink($key) . "'>" . $title . "</a></h3></li>";
}
$html = $html . "</ul>";
return $content . $html;
}
add_filter("the_content", "sitepoint_post_series_content_filter");
如何从该列表中排除已删除和隐藏的帖子。
发布于 2018-06-02 19:42:52
用下面的代码替换你的代码。
function sitepoint_post_series_content_filter($content) {
$slug = "sitepoint-postseries";
if ($slug != get_post_type()) {
return $content;
}
$post_series_list = get_option("post_series_" . get_the_ID() . "_ids", "");
$post_series_list_array = explode(',', $post_series_list);
$post_series_serial_number = array();
foreach ($post_series_list_array as $key => $value) {
$serial_number = get_post_meta($value, "sitepoint-postseries-serial-number", true);
$post_series_serial_number[$value] = $serial_number;
}
asort($post_series_serial_number);
$finalArray = array();
foreach ($post_series_serial_number as $keyPostID => $valueID) {
if('publish' == get_post_status($keyPostID)){
$finalArray[$keyPostID] = $keyPostID;
}
}
$html = "<ul class='sitepoint-post-series'>";
foreach ($finalArray as $key => $value) {
$post = get_post($key);
$title = $post->post_title;
$html = $html . "<li><h3><a href='" . get_permalink($key) . "'>" . $title . "</a></h3></li>";
}
$html = $html . "</ul>";
return $content . $html;
}
add_filter("the_content", "sitepoint_post_series_content_filter");
https://stackoverflow.com/questions/50656445
复制相似问题