diff -uNr a/mp-wp/.htaccess b/mp-wp/.htaccess
--- a/mp-wp/.htaccess 23164212887a9fa35d330f33bce2c3b96604e7331b79f2a0de7f8b845556cc06bc5fbee0b01b16e026461aa92302f92d971fbd39ec267528a65c421684226688
+++ b/mp-wp/.htaccess 1794794b2197805ec99a93d1e3269d6095ef597bb19229a41d5859f615e84ecbd3f2afb414bcb3bfc217e835c6b744a2cbef04b2ea1f36f45330d093227417c3
@@ -20,7 +20,7 @@
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
-RewriteRule . /index.php [L]
+RewriteRule . /index.php [QSA,L]
# END WordPress
diff -uNr a/mp-wp/manifest b/mp-wp/manifest
--- a/mp-wp/manifest 04aa2a1054c2b9058b72d296e7edb0a53f0ed50f01496c228efb976e25805425f2b400e9db4affbfdb94d371ec253711eb4afff087e4f71e19f619b24aeed36d
+++ b/mp-wp/manifest fddc8c4955ac87a3eec37c39c31a034296850c0647035ffd55e5f0a4e323f6dfb7fbbf6a6dd4aa66813020247accd6ea687dba8be9cf4915d1350a251e9a6c7d
@@ -7,3 +7,4 @@
605926 mp-wp_comments_filtering diana_coman Recent comments widget should show only people's comments (no track/pingbacks); theme default changed to show trackbacks/pingbacks as last/at the bottom in an article's comments list.
624752 mp-wp_remove-textselectionjs-pop3-etc jfw Remove the unreliable JS-based selection, posting by POP3 login, and a stray .php.orig file. Neutralize and comment the example pingback updater.
624752 mp-wp_svg-screenshots-and-errorreporting jfw Allow .svg extensions in theme screenshot search. Don't clobber the user's errorreporting level without WP_DEBUG.
+624752 mp-wp_serverside-selection jfw Add server-side text selection to example htaccess and themes, roughly as seen in http://trilema.com/2019/proper-html-linking-the-crisis-the-solution-the-resolution-conclusion/ (xmlrpc.php changes not included)
diff -uNr a/mp-wp/wp-content/themes/classic/functions.php b/mp-wp/wp-content/themes/classic/functions.php
--- a/mp-wp/wp-content/themes/classic/functions.php 3bab13363bde3353a54fe95f13f3a597b911561dd0426d581b3ec6b39e68de3819c26d8df534662f47a2306554fd3e8b2ed61759f9eed4c0b0222e713bd79ca4
+++ b/mp-wp/wp-content/themes/classic/functions.php 2174140e03602f637904590cc0e88d18f826a0b4815032693a0572e452219e66339d414ee8a825d596bad3f6f54b8849ce62f6b07a6a5e81868cda32a2c36388
@@ -11,4 +11,18 @@
'after_title' => '',
));
+// This does the server-side selection
+add_filter('the_content', 'server_side_selection');
+
+function server_side_selection($content){
+ $b_pos = strpos($content, $_GET["b"]);
+ $e_pos = strpos($content, $_GET["e"], $b_pos) + strlen($_GET["e"]);
+ // last to first to preserve indexes
+ if ($e_pos>0)
+ $content = substr_replace($content, '', $e_pos, 0);
+ if ($b_pos>0)
+ $content = substr_replace($content, '', $b_pos, 0);
+ return $content;
+}
+
?>
diff -uNr a/mp-wp/wp-content/themes/default/functions.php b/mp-wp/wp-content/themes/default/functions.php
--- a/mp-wp/wp-content/themes/default/functions.php 6399a2b7affebc933cdbbe699a806131411ed87dd6509b6ad68a679130b78f32aa628bc8045d95c7edcf7a3ca9217aa048f703fbed526c13f29070fc5dc5e0bb
+++ b/mp-wp/wp-content/themes/default/functions.php ce4e91438f1136964dc138242a788cd8d1c0f2c92ffc68e8d8b647a369b882c555d7134bda572ef721cb46e0d842ec6a5bc36639126d0b36ba199252436d0f52
@@ -419,4 +419,20 @@
-
+0)
+ $content = substr_replace($content, '', $e_pos, 0);
+ if ($b_pos>0)
+ $content = substr_replace($content, '', $b_pos, 0);
+ return $content;
+}
+
+?>