gpt4 book ai didi

wordpress - 如何在上线前自定义 WordPress 主题

转载 作者:行者123 更新时间:2023-12-03 07:15:11 31 4
gpt4 key购买 nike

昨天,我在我的自托管网站上的 Wordpress 上安装了一个新主题。我知道允许您预览主题的功能,并使用它来选择我想要安装的新主题。

问题我不想中断网站的正常运行,但这个新主题在准备就绪之前需要进行大量自定义。我该怎么做?

我蹩脚的解决方案在我的桌面上运行虚拟服务器是唯一的方法吗?这看起来很乏味,更不用说我在执行此操作时切换到“真实”服务器时通常遇到的所有错误。

更好的方法?我一直在搜索 SO 以及 WordPress论坛上有关于如何做到这一点的答案,但没有找到答案。我本以为这是一个常见问题。也许我使用了错误的搜索词[主题、自定义、安装前]???

非常感谢任何帮助!谢谢!

最佳答案

好吧,由于您的问题非常好,并且可能不少人在决定更新其网站时会经历相同的过程,因此我决定尝试一下 get_stylesheetget_template 过滤器 Hook 。事实证明,使用一个非常小的插件,您可以根据特定的规则轻松实现特定的主题(在本例中是任何登录的访问者,但您可以更改它以使用您想要的任何逻辑)。

以下是您需要放入插件目录中的文件中的代码:

<?php 
/*
Plugin Name: Switch Theme
Description: Switches the theme for logged-in visitors, while keeping the current theme for everyone else. !!!NOTE!!! Please back-up your database prior using this plugin - I can't guarantee that it will work with any theme, nor that it won't break your site's set-up - USE AT YOUR OWN RISK(I did a quick test and it seemed to be fine, but haven't done extensive testing).

You don't need to switch to the desired theme before that - you want to keep active the theme that you will display to your visitors - the one that you will see will be used programatically.

Before activating the plugin, change the line that says `private $admin_theme = '';` to `private $admin_theme = 'theme-directory-name';` where "theme-directory-name" is obviously the name of the directory in which the desired theme resides in.
*/

class MyThemeSwitcher {
private $admin_theme = '';

function MyThemeSwitcher() {
add_filter( 'stylesheet', array( &$this, 'get_stylesheet' ) );
add_filter( 'template', array( &$this, 'get_template' ) );
}

function get_stylesheet($stylesheet = '') {
if ( is_user_logged_in() && $this->admin_theme ) {
return $this->admin_theme;
}
return $stylesheet;
}

function get_template( $template ) {
if ( is_user_logged_in() && $this->admin_theme ) {
return $this->admin_theme;
}
return $template;
}
}

$theme_switcher = new MyThemeSwitcher();

所以 - 首先备份您的数据库!我在本地进行了测试,将“211”作为默认主题,将基本框架主题作为我的自定义主题 - 主题选项和导航菜单已正确保存。

然后您需要做的就是更新文件(将 private $admin_theme = ''; 行更改为 private $admin_theme = 'theme-slug'; code> 其中 theme-slug 是您要使用的主题所在目录的名称。

此外 - 您将无法更改首页帖子页面选项,这不会影响实时网站,也无法更改两个主题使用的任何共享组件(站点名称、首页、帖子页面、每页帖子等选项、内容等)。

因此,如果您不知道此解决方案是否适合您 - 嗯,这取决于情况。

如果两个主题都不是相对复杂,那么您很可能应该能够使用此技巧。如果是的话,也许您应该按照其他人的建议对您的网站进行第二次安装 - 我认为在子域或子目录中进行第二次安装将是您的最佳选择(仅仅是因为移动多站点数据库是比移动普通 WP 数据库更复杂)。

关于wordpress - 如何在上线前自定义 WordPress 主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13835830/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com