WordPress中如何通过判定一个内容不显示则不显示当前内容

  [复制链接]  41查看
易西 发表于 2025-8-31 19:13:13 | 显示全部楼层 |阅读模式
WordPress中如何通过判定一个内容不显示则不显示当前内容
[发帖际遇]: 易西 乐于助人,奖励 1 贡献. 幸运榜 / 衰神榜
 楼主| 易西 发表于 2025-8-31 19:14:14 | 显示全部楼层


WordPress中如何通过判定一个内容不显示则不显示当前内容
在WordPress中,如果你想通过判定一个内容(例如一个页面或文章)的某些条件不满足时,不显示当前内容,你可以通过几种方法来实现。下面是一些常用的方法:

1. 使用is_page()或is_single()条件判断
你可以在主题的functions.php文件中或者通过创建一个自定义的模板标签文件(例如template-part.php),使用is_page()或is_single()函数来判断当前是否为特定页面或文章,然后根据条件决定是否加载内容。

if (is_page('特定页面标题') || is_single('特定文章标题')) {
    // 加载内容
} else {
    // 不加载内容或重定向
}
2. 使用get_the_ID()和自定义字段
如果你想要根据文章或页面的自定义字段来决定是否显示内容,可以使用get_the_ID()来获取当前文章或页面的ID,然后检查该ID对应的自定义字段。

if (is_single() && get_post_meta(get_the_ID(), '显示条件', true) == 'true') {
    // 加载内容
} else {
    // 不加载内容
}
3. 使用has_term()和分类/标签条件
如果你的内容是基于分类或标签的,你可以使用has_term()函数来检查当前内容是否属于特定的分类或标签。

if (is_single() && has_term('特定分类', 'category')) {
    // 加载内容
} else {
    // 不加载内容
}
4. 使用钩子(Hooks)和过滤器(Filters)
WordPress提供了许多钩子和过滤器,你可以使用这些来控制内容的显示。例如,你可以使用the_content过滤器来修改内容的输出。

add_filter('the_content', 'custom_content_filter');
function custom_content_filter($content) {
    if (is_single() && !特定条件()) { // 替换特定条件为你的判断逻辑
        return ''; // 不显示内容
    }
    return $content; // 显示内容
}
5. 使用模板文件条件判断
在某些情况下,你也可以直接在模板文件中使用条件判断来控制内容的显示。例如,在single.php或page.php模板文件中:

if (is_single() && !特定条件()) { // 替换特定条件为你的判断逻辑
    echo '不显示内容'; // 或者其他不显示内容的逻辑
} else {
    the_content(); // 显示内容
}
结论
选择哪种方法取决于你的具体需求和场景。通常,结合使用这些方法可以灵活地控制内容的显示。确保在修改主题文件或添加自定义代码时备份相关文件,以防出现意外情况。同时,考虑到性能和可维护性,尽量使用WordPress提供的钩子和过滤器来实现功能。

提示:AI自动生成,仅供参考

参考
 楼主| 易西 发表于 2025-8-31 19:33:28 | 显示全部楼层


WordPress如何在其他地方调用本篇文章作者的所有评论,多的折叠起来,点击展示,自动
在WordPress中实现一个功能,即在其他地方调用当前文章作者的评论,并且将多余的评论折叠起来,通过点击展示,可以使用以下几种方法:

方法1:使用自定义函数和模板标签
创建自定义函数:首先,创建一个PHP函数来获取并显示指定作者的评论。

function display_author_comments($post_id) {
    $comments = get_comments(array(
        'post_id' => $post_id,
        'status'  => 'approve',
        'number'  => 10 // 显示前10条评论
    ));

    if ($comments) {
        echo '<div class="author-comments">';
        echo '<h3>Comments by Author</h3>';
        echo '<div class="comments-list">';
        foreach ($comments as $comment) {
            echo '<div class="comment">';
            echo '<div class="comment-author">' . get_avatar($comment, 40) . ' ' . get_comment_author($comment->comment_ID) . '</div>';
            echo '<div class="comment-text">' . get_comment_text($comment->comment_ID) . '</div>';
            echo '</div>';
        }
        echo '</div>';
        echo '<button class="show-more">Show More Comments</button>';
        echo '</div>';
    } else {
        echo '<p>No comments found.</p>';
    }
}
添加折叠功能:使用JavaScript来折叠多余的评论。

<script>
document.addEventListener('DOMContentLoaded', function() {
    const commentsList = document.querySelector('.comments-list');
    const showMoreBtn = document.querySelector('.show-more');
    let allComments = Array.from(commentsList.querySelectorAll('.comment'));
    let visibleComments = allComments.slice(0, 10); // 默认显示前10条评论
    let hiddenComments = allComments.slice(10); // 剩余的评论
    hiddenComments.forEach(comment => comment.style.display = 'none'); // 隐藏剩余评论
   
    showMoreBtn.addEventListener('click', function() {
        hiddenComments.forEach(comment => comment.style.display = 'block'); // 显示隐藏的评论
        this.style.display = 'none'; // 隐藏“显示更多”按钮
    });
});
</script>
在模板中调用:在你的主题文件(如 single.php 或其他需要显示评论的模板)中调用这个函数。

<?php
$post_id = get_the_ID(); // 获取当前文章的ID
display_author_comments($post_id);
?>
方法2:使用插件或第三方库
如果你不想手动编写JavaScript和PHP代码,可以考虑使用一些现有的插件或库,例如“Advanced Comments”或“Custom Comment Walker”等插件,这些插件提供了更多的自定义选项和折叠功能。安装并激活这些插件后,你可以在插件的设置中找到折叠评论的选项,并进行配置。

方法3:使用WordPress的钩子(Hooks)和动作(Actions)
如果你熟悉WordPress的钩子系统,你可以通过添加动作(actions)来动态添加折叠评论的逻辑。例如,使用wp_footer钩子来添加JavaScript代码。

function add_custom_scripts() {
    wp_enqueue_script('custom-comments-script', get_template_directory_uri() . '/js/custom-comments.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'add_custom_scripts');
然后,在你的js/custom-comments.js文件中添加折叠逻辑。

以上方法可以帮助你在WordPress中实现调用并折叠显示当前文章作者的评论。选择最适合你需求的方法来实现。

提示:AI自动生成,仅供参考


参考
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

邮箱|首页|小黑屋|吾侪 ( 蜀ICP备2020029307号-4 )

GMT+8, 2026-6-21 16:47 , Processed in 0.064935 second(s), 27 queries .

Powered by Discuz! X3.5

Copyright © , 吾侪网

快速回复 返回顶部 返回列表