如果要从站点中删除所有彩色文本,可以使用全局CSS规则,如
* {color:black !important; background-color:white !important}
这将使所有文本在白色背景下变为黑色。(应将“*”应用于所有CSS元素。)这并不能去除图像或其他东西,所以您可以将其添加到图像中
img {display:none !important;}
然后根据需要添加其他元素。
这样做的问题是,它会影响整个网站,因此您需要有一种方法来动态更改主题,只针对纯文本用户。我认为这不容易做到。
可能会创建另一个使用相同数据库的WP安装,但为新站点设置一个主题,根据需要添加上述CSS和其他CSS。新站点位于https://www.example.com/textonly , 例如您还需要将plugins文件夹复制到新站点。
可能需要一些额外的调整,但这可能会让您开始。
Added
当我想到复制站点/相同数据库的想法时,如果复制站点使用不同的主题,可能会出现问题。
活动主题存储在wp options表中(我认为),因此共享数据库不能有不同的主题。
因此,在页面加载过程的第一部分,您需要使用挂钩来更改主题名称(和位置)。您仍然需要单独安装共享数据库,但挂钩将加载不同的主题。
也许只需要使用一个钩子来更改主题名称(和位置)的函数。钩子将查看页面的查询参数(例如https://www.example.com/some-page?theme=textonly )并检查“theme”查询参数以决定要加载哪个主题。
我认为WP core中没有指定主题名称的查询参数,尽管这是个好主意;对于在活动站点上测试新主题非常有用,有些人希望这样做。
但也许我随机的想法会让你朝着一个能满足你需求的方向前进。我对这方面的其他想法很感兴趣。
Added More
所以,在挖掘可能的钩子时,我想出了\'
setup_theme
\' 挂钩,在wp设置中。第407行附近的php。稍后在该文件中(大约第438行)(代码中的行号来自我的复制/粘贴):
// Load the functions for the active theme, for both parent and child theme if applicable.
439 if ( ! wp_installing() || \'wp-activate.php\' === $pagenow ) {
440 if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . \'/functions.php\' ) )
441 include( STYLESHEETPATH . \'/functions.php\' );
442 if ( file_exists( TEMPLATEPATH . \'/functions.php\' ) )
443 include( TEMPLATEPATH . \'/functions.php\' );
444 }
因此,通过改变
TEMPLATEPATH
和
STYLESHEETPATH
常量,我们可以更改正在使用的主题。
因此,psuedocode:
add_action(\'setup_theme\', \'my_use_different_theme\');
function my_use_different_theme() {
TEMPLATEPATH = "path/to/the/other/theme/templates\';
STYLESHEETPATH = "path/to/the/other/theme/styles";
return;
}
可能允许您创建一个函数,如果查询参数包含类似\'
theme=newtheme
\', 何处\'
newtheme
\' 是要使用的主题的名称。Psuedocode(伪代码):
$themename = "get/the/query/value";
if ($themename ==\'newtheme\') {
add_action(\'setup_theme\', \'my_use_different_theme\');
}
这就叫我们的\'
my_use_different_theme
\' 如果页面的查询参数为
theme=newtheme
.