Verwenden Sie das Pluszeichen “+” anstelle von Bindestrich “-” in URLs

Ist es möglich, das Pluszeichen anstelle des Bindestrichs als Trennzeichen in der URL zu verwenden? Und wenn ja, wie genau würde das gemacht werden?

zB: www.example.com/some-title/ wird zu www.example.com/some+title/

Natürlich müsste es idealerweise mit Posts, Seiten und benutzerdefinierten Posts funktionieren.

Solutions Collecting From Web of "Verwenden Sie das Pluszeichen “+” anstelle von Bindestrich “-” in URLs"

Mark Jaquith verwendet “+” als Trennzeichen für die Suchabfrage in seinem Nice Search Plugin. H er ist was er macht :

 function cws_nice_search_redirect() { if ( is_search() && strpos( $_SERVER['REQUEST_URI'], '/wp-admin/' ) === false && strpos( $_SERVER['REQUEST_URI'], '/search/' ) === false ) { wp_redirect( home_url( '/search/' . str_replace( array( ' ', '%20' ), array( '+', '+' ), get_query_var( 's' ) ) ) ); exit(); } } 

Vielleicht kann es als Referenz nützlich sein?

VERWENDEN .HTACCESS NICHT .HTACCESS dafür!

Seine Wahnsinn, WP wird Links mit - und Ihre Website wird in immergrünen Looping von. .htaccess … Stattdessen müssen Sie URL-Generierungscode ändern:

Fügen Sie dies in functions.php :

 add_action( 'wp_ajax_sample-permalink', 'MyajaxSamplePermalink',1); function MyajaxSamplePermalink($data) { // check that we're dealing with a product, and editing the slug $post_id = isset($_POST['post_id']) ? intval($_POST['post_id']) : 0; $new_title = isset($_POST['new_title'])? $_POST['new_title'] : null; $post_name = isset($_POST['new_slug'])? $_POST['new_slug'] : $new_title; //on first fire, there is not set the "new_slug" $_POST['new_slug'] = ISSET($_POST['new_slug']) ? $_POST['new_slug'] : slug_modify($post_name); } //disable slug beforehand Post Update action (also, in navigation menus and etc...) add_filter('name_save_pre', 'MyfilterNameSavePre'); function MyfilterNameSavePre($post_name) { if (!empty($_POST['post_ID']) || !empty($_POST['post_name']) || !empty($_POST['post_title']) ){ // check that we're dealing with a product, and editing the slug $post_id = !empty($_POST['post_ID']) ? intval($_POST['post_ID']) : 0; $new_slug = !empty($_POST['post_name']) ? $_POST['post_name'] : $_POST['post_title']; //if got from new post if ($post_id && !empty($_POST['_wp_http_referer']) ) { if (stripos($_POST['_wp_http_referer'],'wp-admin/post-new.php')!==false) { $post_name = slug_modify($new_slug); $_POST['post_name']=$post_name;} } } return $post_name; } //disable slug on any update add_filter('wp_insert_post_data', 'myappend_slug', 3); function myappend_slug($dataaaaaa) { if (!empty($_POST['_wp_http_referer'])) { if (stripos($_POST['_wp_http_referer'],'wp-admin/post-new.php')!==false) { $dataaaaaa['post_name']=slug_modify( (!empty($_POST['post_name']) ? $_POST['post_name'] :$dataaaaaa['post_title']) ); } } return $dataaaaaa; } function slug_modify($slg) {return str_replace('-','+',$slg);}