这篇文章介绍了如何在WordPress网站上实现暗黑模式,但需要一些编码知识。如果你不熟悉编码,可以考虑使用插件来实现暗黑模式功能。以下是一些常用的WordPress插件:

  1. WP Dark Mode
  2. Dark Mode
  3. Night Eye
  4. WP Night Mode

这些插件都很容易使用,只需要安装和激活即可。如果你想要更多的自定义选项,可以选择更高级的插件或者找到一个适合自己的主题。

实现暗黑模式的步骤

以下是如何在WordPress网站上实现暗黑模式的步骤:

  1. 创建CSS样式: 定义一个CSS类,例如'cwp_dark',用于控制暗黑模式下的样式。
  2. 创建切换按钮: 使用shortcode创建一个切换按钮,允许用户开启或关闭暗黑模式。
  3. 保存用户偏好: 使用Cookies或用户元数据来保存用户的偏好设置,以便在用户访问网站时自动应用相应的样式。
  4. 添加JavaScript代码: 添加JavaScript代码,根据用户的偏好设置来动态添加或移除'cwp_dark'类,实现无刷新切换暗黑模式。

代码示例

function cwpai_darkmode_shortcode() {
    if (is_user_logged_in()) {
        $user_id = get_current_user_id();
        $darkmode = get_user_meta($user_id, 'cwp_dark', true);
        if ($darkmode == 1) {
            $checked = 'checked';
        } else {
            $checked = '';
        }
        $output = '<input type="checkbox" id="cwp_darkmode" name="cwp_darkmode" value="1" ' . $checked . '>';
        $output .= '<label for="cwp_darkmode">Dark Mode</label>';
        $output .= '<script>
            jQuery(document).ready(function($) {
                $("#cwp_darkmode").change(function() {
                    var darkmode = $(this).prop("checked");
                    if (darkmode == true) {
                        var darkmode = 1;
                    } else {
                        var darkmode = 0;
                    }
                    $.ajax({
                        type: "POST",
                        url: "' . admin_url('admin-ajax.php') . '",
                        data: {
                            action: "cwpai_darkmode",
                            darkmode: darkmode
                        },
                        success: function(data) {
                            if (darkmode == 1) {
                                $("body").addClass("cwp_dark");
                            } else {
                                $("body").removeClass("cwp_dark");
                            }
                        }
                    });
                });
            });
        </script>';
    } else {
        if (isset($_COOKIE['cwp_dark'])) {
            $checked = 'checked';
        } else {
            $checked = '';
        }
        $output = '<input type="checkbox" id="cwp_darkmode" name="cwp_darkmode" value="1" ' . $checked . '>';
        $output .= '<label for="cwp_darkmode">Dark Mode</label>';
        $output .= '<script>
            jQuery(document).ready(function($) {
                $("#cwp_darkmode").change(function() {
                    var darkmode = $(this).prop("checked");
                    if (darkmode == true) {
                        document.cookie = "cwp_dark=1; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/";
                        $("body").addClass("cwp_dark");
                    } else {
                        document.cookie = "cwp_dark=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
                        $("body").removeClass("cwp_dark");
                    }
                });
            });
        </script>';
    }
    return $output;
}
add_shortcode('darkmode', 'cwpai_darkmode_shortcode');
function cwpai_darkmode_ajax() {
    $user_id = get_current_user_id();
    $darkmode = $_POST['darkmode'];
    update_user_meta($user_id, 'cwp_dark', $darkmode);
    die();
}
add_action('wp_ajax_cwpai_darkmode', 'cwpai_darkmode_ajax');
add_action('wp_ajax_nopriv_cwpai_darkmode', 'cwpai_darkmode_ajax');
function cwpai_darkmode_body_class($classes) {
    if (is_user_logged_in()) {
        $user_id = get_current_user_id();
        $darkmode = get_user_meta($user_id, 'cwp_dark', true);
        if ($darkmode == 1) {
            $classes[] = 'cwp_dark';
        }
    } else {
        if (isset($_COOKIE['cwp_dark'])) {
            $classes[] = 'cwp_dark';
        }
    }
    return $classes;
}
add_filter('body_class', 'cwpai_darkmode_body_class');

总结

通过上述步骤,你就可以在WordPress网站上实现一个功能完善的暗黑模式,并根据用户的偏好设置自动切换。

注意事项

  • 以上代码需要在WordPress主题的functions.php文件中添加。
  • 确保你已创建了相应的CSS样式,用于控制暗黑模式下的网站外观。
  • 你可以使用插件或其他方式来美化切换按钮的样式。

希望这篇文章能帮助你成功实现WordPress网站的暗黑模式。

如何在WordPress网站上实现暗黑模式(无需插件)

原文地址: https://www.cveoy.top/t/topic/n6rc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录