首页 > 解决方案 > 如何更改帖子类型“页面”上 CPT 循环的摘录长度?

问题描述

当我在主页上循环浏览 CPT 时,它会正确显示,但我无法控制摘录长度。

我想在我的首页循环浏览 4 个不同的 CPT。循环正在工作,但我控制摘录长度的条件逻辑没有按预期工作,因为 get_post_type 返回“页面”而不是实际的 CPT。

这是在我的functions.php中:

add_filter('excerpt_length', 'll_get_excerpt_length');

function ll_get_excerpt_length($size) {

    if (is_post_type_archive('post')) {
        return 40;
    } elseif (is_post_type_archive('podcast')) {
        return 15;
    } elseif (is_post_type_archive('review')) {
        return 5;
    } else {
        return $size;
    }
}

当 var 转储帖子类型时,我得到“页面”,所以我不知道在哪里或如何控制摘录的各种长度。

我希望我首页上的每个 CPT 循环的摘录长度都是正确的。

当我用 print_r 添加以下内容时,我只进入函数而不进入 ifs。

add_filter('excerpt_length', 'll_get_excerpt_length');

function ll_get_excerpt_length($size) {
   print_r(get_post_type());
    if (is_post_type_archive('post')) {
        print_r(get_post_type());
        return 40;
    } elseif (is_post_type_archive('podcast')) {
         print_r(get_post_type());
        return 15;
    } elseif (is_post_type_archive('review')) {
         print_r(get_post_type());
        return 5;
    } else {
        return $size;
    }
}

任何帮助将不胜感激!

标签: wordpresswordpress-themingcustom-wordpress-pages

解决方案


如果您不检查 is_single(), is_singular('podcast') 而不是在存档页面上,is_post_type_archive 只会返回 true 吗?


推荐阅读