সমাধান
আমি আপডেট 3 নিয়ে চলেছি এবং এটি কাজ করে চলেছি। যা আমি ভুল বুঝেছিলাম তা হ'ল আমি বিশ্বাস করি যে পুনর্লিখনের নিয়মটি পরিবর্তিত designers/?designer=some-designer&bid=9
হবে /designers/some-designer
। তবে এটি অবশ্যই অন্যভাবে।
আমি কিছু গবেষণা করে চলেছি তবে অ্যাড_উরাইট_রুল () কীভাবে ব্যবহার করতে হয় তা আমি পুরোপুরি পাই না ।
এই পোস্টটি আমার যা প্রয়োজন তার খুব কাছাকাছি, তবে আমার কি সত্যিই এত কোড দরকার?
আমার বর্তমান লিঙ্কটি হ'ল:
http : //www.nor
Dutchfashion.no/designers/?designer=Batlak-og-Selvig&bid=9 আমি যা চাই তা হল এই http : //www.nor
Turkfashion.no/designers/Batlak-og-Selvig /
- আমি কীভাবে ব্যবহার করব
add_rewrite_rule()
? - আমার ডিজাইনার আইডি (বিড) পাস করতে হবে। ইউআরএল-এ প্রদর্শিত হ'ল পুনর্লিখনের নিয়ম ব্যবহার করার সময় আমি কীভাবে এটি করতে পারি?
আপডেট 1
আমি এটি খুঁজে পেয়েছি যা কিছুটা ব্যাখ্যামূলক। তবে এটি কাজ করছে না:
function add_rewrite_rules( $wp_rewrite )
{
$new_rules = array(
'('.$template_page_name.')/designers/(.*?)/?([0-9]{1,})/?$' => 'designers.php?designer='.
$wp_rewrite->preg_index(1).'&bid='.
$wp_rewrite->preg_index(2)
);
// Always add your rules to the top, to make sure your rules have priority
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action('generate_rewrite_rules', 'add_rewrite_rules');
function query_vars($public_query_vars) {
$public_query_vars[] = "designer";
$public_query_vars[] = "bid";
return $public_query_vars;
}
add_filter('query_vars', 'query_vars')
আপডেট 2
আমি চেষ্টা করেছি এমন আরও একটি সমাধান, যা জান ফ্যাব্রি অন্য থ্রেডে প্রস্তাব করেছেন। আমি এটি আমার ফাংশন.এফপিতে রেখেছি, তবে এর কোনও প্রভাব নেই।
add_action('generate_rewrite_rules', 'add_rewrite_rules');
add_filter('query_vars', 'query_vars');
/* Custom re-write rules for desigenrs
------------------------------------------------------------------------------*/
function add_rewrite_rules( $wp_rewrite )
{
add_rewrite_rule('^designers/([^/]*)/([^/]*)$ /designers/?designer=$1&bid=$2 [L]', 'top');
flush_rewrite_rules(false);
}
function query_vars($public_query_vars) {
$public_query_vars[] = "designer";
$public_query_vars[] = "bid";
return $public_query_vars;
}
আপডেট 3
আমি এখানে কয়েকটি উদাহরণও পেয়েছি । তবে এটিও কাজ করছে না :(
add_filter('rewrite_rules_array','wp_insertMyRewriteRules');
add_filter('query_vars','wp_insertMyRewriteQueryVars');
add_filter('init','flushRules');
// Remember to flush_rules() when adding rules
function flushRules(){
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
// Adding a new rule
function wp_insertMyRewriteRules($rules)
{
$newrules = array();
$newrules['(designers)/(\d*)$'] = 'index.php?pagename=designers&designer=$matches[1]';
return $newrules + $rules;
}
// Adding the bid var so that WP recognizes it
function wp_insertMyRewriteQueryVars($vars)
{
array_push($vars, 'designer');
return $vars;
}
আপডেট 4 আমি এই সমাধানটি চেষ্টা করেছিলাম, তবে এখনও কোনও সাফল্য পাইনি।
add_filter('search_rewrite_rules', 'designers_createRewriteRules');
function designers_createRewriteRules($rewrite) {
global $wp_rewrite;
// add rewrite tokens
$designer_token = '%designers%';
$wp_rewrite->add_rewrite_tag($designer_token, '(.+)', 'designers=');
$bid_token = '%bid%';
$wp_rewrite->add_rewrite_tag($bid_token, '(.+)', 'bid=');
$keywords_structure = $wp_rewrite->root . "designers/$designer_token/$bid_token";
$keywords_rewrite = $wp_rewrite->generate_rewrite_rules($keywords_structure);
return ( $rewrite + $keywords_rewrite );
}
আপডেট 5
মনে হচ্ছে আমার পুনর্লিখনের নিয়মগুলি যুক্ত করা হয়নি। নতুন নিয়মগুলি ছড়িয়ে দেওয়ার ফলশ্রুতি সম্পাদন: print_r($wp_rewrite)
আমার নতুন পুনর্লিখনের বিধিগুলিকে অন্তর্ভুক্ত করে না।
আপডেট 6
আমি জান এর সমাধান পরীক্ষা করেছি। তবে ইউআরএল পরিবর্তন হয় না :(
/* Initiation script for NF template
------------------------------------------------------------------------------*/
add_action('after_setup_theme','norwegianfashion_setup');
if ( ! function_exists( 'norwegianfashion_setup' ) ):
function norwegianfashion_setup() {
/* Here I do a lot of stuff */
// SEO friendly URL for desigenrs
add_action( 'init', 'wpa5413_init' );
add_filter( 'query_vars', 'wpa5413_query_vars' );
}
endif;
/* Custom re-write rules for desigenrs
------------------------------------------------------------------------------*/
function wpa5413_init()
{
// Remember to flush the rules once manually after you added this code!
add_rewrite_rule(
'designers/([^/]+)/?',
'index.php?pagename=designers&designer=$matches[1]',
'top' );
}
function wpa5413_query_vars( $query_vars )
{
$query_vars[] = 'designer';
return $query_vars;
}
কেউ যদি আমাকে এই সমস্যা সমাধানে সহায়তা করতে সক্ষম হন তবে আমি সত্যই এটির প্রশংসা করব।
bid
?
slug
? Design ডিজাইনের ডেটা পুনরুদ্ধার করা bid
তার চেয়ে অনেক বেশি সহজdesigner