ฉันจะไม่พยายามทำให้ทากของคุณ จำกัด วง แต่ทำไมไม่ให้ผู้ใช้ของคุณเลือกที่จะเปลี่ยนพวกเขาโดยเพิ่มฟิลด์อื่นในหน้าการตั้งค่าลิงก์ถาวร
ขอload-options-permalink.php
และตั้งค่าบางสิ่งเพื่อจับ$_POST
ข้อมูลเพื่อบันทึกกระสุนของคุณ เพิ่มฟิลด์การตั้งค่าลงในหน้า
<?php
add_action( 'load-options-permalink.php', 'wpse30021_load_permalinks' );
function wpse30021_load_permalinks()
{
if( isset( $_POST['wpse30021_cpt_base'] ) )
{
update_option( 'wpse30021_cpt_base', sanitize_title_with_dashes( $_POST['wpse30021_cpt_base'] ) );
}
// Add a settings field to the permalink page
add_settings_field( 'wpse30021_cpt_base', __( 'CPT Base' ), 'wpse30021_field_callback', 'permalink', 'optional' );
}
จากนั้นฟังก์ชั่นโทรกลับสำหรับช่องการตั้งค่า:
<?php
function wpse30021_field_callback()
{
$value = get_option( 'wpse30021_cpt_base' );
echo '<input type="text" value="' . esc_attr( $value ) . '" name="wpse30021_cpt_base" id="wpse30021_cpt_base" class="regular-text" />';
}
get_option
จากนั้นเมื่อคุณลงทะเบียนประเภทโพสต์ของคุณคว้ากระสุนด้วย หากไม่มีให้ใช้ค่าเริ่มต้นของคุณ
<?php
add_action( 'init', 'wpse30021_register_post_type' );
function wpse30021_register_post_type()
{
$slug = get_option( 'wpse30021_cpt_base' );
if( ! $slug ) $slug = 'your-default-slug';
// register your post type, reference $slug for the rewrite
$args['rewrite'] = array( 'slug' => $slug );
// Obviously you probably need more $args than one....
register_post_type( 'wpse30021_pt', $args );
}
นี่คือส่วนของฟิลด์การตั้งค่าเป็นปลั๊กอินhttps://gist.github.com/1275867
แก้ไข: ตัวเลือกอื่น
คุณสามารถเปลี่ยนกระสุนตามสิ่งที่กำหนดไว้ในWPLANG
ค่าคงที่
เพียงแค่เขียนฟังก์ชั่นด่วนที่เก็บข้อมูล ...
<?php
function wpse30021_get_slug()
{
// return a default slug
if( ! defined( 'WPLANG' ) || ! WPLANG || 'en_US' == WPLANG ) return 'press';
// array of slug data
$slugs = array(
'fr_FR' => 'presse',
'es_ES' => 'prensa'
// etc.
);
return $slugs[WPLANG];
}
จากนั้นรับกระสุนที่คุณลงทะเบียนประเภทโพสต์ที่กำหนดเองของคุณ
<?php
add_action( 'init', 'wpse30021_register_post_type' );
function wpse30021_register_post_type()
{
$slug = wpse30021_get_slug();
// register your post type, reference $slug for the rewrite
$args['rewrite'] = array( 'slug' => $slug );
// Obviously you probably need more $args than one....
register_post_type( 'wpse30021_pt', $args );
}
ตัวเลือกที่ดีที่สุด IMO จะให้ทั้งตัวเลือกแก่ผู้ใช้และให้ค่าเริ่มต้นที่มั่นคง:
<?php
add_action( 'init', 'wpse30021_register_post_type' );
function wpse30021_register_post_type()
{
$slug = get_option( 'wpse30021_cpt_base' );
// They didn't set up an option, get the default
if( ! $slug ) $slug = wpse30021_get_slug();
// register your post type, reference $slug for the rewrite
$args['rewrite'] = array( 'slug' => $slug );
// Obviously you probably need more $args than one....
register_post_type( 'wpse30021_pt', $args );
}
prensa
prensa
การใช้WPMLทากหน้าของการแปลpress
นั้นไม่สามารถเกิดขึ้นได้prensa
อีก: / en / กด / ซึ่งไม่แสดงอะไรเลย (โปรดทราบว่าตอนนี้การคลิกที่ลิงค์ ES จะไม่นำคุณกลับไปที่ / prensa /) แต่ถ้าคุณเยี่ยมชม/ en / prensa /มันใช้งานได้ ...