首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在WordPress存档页面中仅显示已发布的带有自定义元数据的自定义类型帖子

在WordPress存档页面中仅显示已发布的带有自定义元数据的自定义类型帖子
EN

Stack Overflow用户
提问于 2018-06-02 19:28:38
回答 1查看 98关注 0票数 0

我正在使用SitePoint post创建自定义帖子类型的帖子系列,并为帖子序列号创建自定义框。

下面的函数提供在特定分类中发布的所有帖子的列表。问题是它还列出了已删除和隐藏的帖子:

代码语言:javascript
复制
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");

如何从该列表中排除已删除和隐藏的帖子。

EN

回答 1

Stack Overflow用户

发布于 2018-06-02 19:42:52

用下面的代码替换你的代码。

代码语言:javascript
复制
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");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50656445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档