我正在使用报纸风格的 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: 忽略之前的更新。我清除了缓存,但仍然无法正确显示。 😱
看来我明白了!完全清除缓存并从 is_archive() 更改为 is_category() 后,所有页面现在都显示正确的短代码。感谢所有看过这个问题的人。感谢您的宝贵时间。