通过活动页面更改后元中的作者署名

问题描述 投票:0回答:1

我正在使用报纸风格的 WordPress 主题和 PublishPress Authors 插件。那里没有问题。 ✅

主题有一个 post-meta.php 文件,显然它定义了 post-meta 如何在页面上显示。我正在尝试修改后元的 author 块以使用 PublishPress 作者短代码,具体取决于活动页面。例如,在主页或首页上,它应该使用一种样式,但在单个帖子上它应该使用另一种样式。

我尝试了几种浏览 StackOverflow 时发现的不同方法,包括回显,但这似乎导致 PublishPress 作者短代码在现有的后元之上显示在一个奇怪且大的重叠位置。

我最后的尝试是以下代码:

    $author_link = '';

    if (is_home() || is_front_page()) {
        $author_link = $author_img . $label . (!is_home() || !is_front_page() ? get_the_author_posts_link() : 
            do_shortcode('[publishpress_authors_box layout="ppma_boxes_1011" author_categories="author,co-author"]'));
    }
    elseif (is_single()) {
        $author_link = $author_img . $label . (!is_single() ? get_the_author_posts_link() : 
            do_shortcode('[publishpress_authors_box layout="ppma_boxes_1567"]'));
    }
    else {
        $author_link = $author_img . $label . (!is_home() || !is_front_page() || !is_single() ? get_the_author_posts_link() : 
            do_shortcode('[publishpress_authors_box layout="ppma_boxes_1011" author_categories="author,co-author"]'));
    }                                                      
                                                           
    $output = sprintf(
        '<span class="%1$s">%2$s</span>',
        esc_attr(join(' ', $classes)),
        $author_link
    );

我添加了第三个 else 语句,因为我不确定如何正确处理所有剩余的分类存档页面,因此认为这可能是一个好方法。

奇怪的是,elseif语句似乎有效,但其他两个则无效。我在单个帖子上看到了正确的更改。我知道我遗漏了一些明显的东西,希望有人能向我指出。

谢谢!

更新 08/01/2024 9:55AM ET: 我缩短了 if 语句以区分页面和帖子。它似乎对主页/首页和单个帖子产生了预期的效果,但存档页面(类别)完全删除了 $author_link 。 🤔

这是代码片段:

    $author_link = '';

    if (is_page()) {
        $author_link = $author_img . $label . (!is_page() ? get_the_author_posts_link() : 
            do_shortcode('[publishpress_authors_box layout="ppma_boxes_1011" author_categories="author,co-author"]'));
    }
    elseif (is_single()) {
        $author_link = $author_img . $label . (!is_single() ? get_the_author_posts_link() : 
            do_shortcode('[publishpress_authors_box layout="ppma_boxes_1567"]'));
    }                                              
                                                           
    $output = sprintf(
        '<span class="%1$s">%2$s</span>',
        esc_attr(join(' ', $classes)),
        $author_link
    );

更新 08/01/2024 10:04AM ET: 忽略之前的更新。我清除了缓存,但仍然无法正确显示。 😱

php wordpress wordpress-theming custom-wordpress-pages wordpress-shortcode
1个回答
0
投票

看来我明白了!完全清除缓存并从 is_archive() 更改为 is_category() 后,所有页面现在都显示正确的短代码。感谢所有看过这个问题的人。感谢您的宝贵时间。

© www.soinside.com 2019 - 2024. All rights reserved.