我希望动态更改我的slug,以便它们与我的术语名称一起显示,为此,我在管理员面板中创建了一个选项,允许我启动该过程,但我真的不知道从哪里开始。
首先,我想我必须恢复分类法,在分类法中,我找到了所有需要动态更改的术语。
是否有人可以为我正在尝试创建的这个函数使用一个示例代码?
以下是我必须使用的分类法,以便让我的术语动态修改这些分类法:
分类:recipe\\u类别、recipe\\u类型、recipe\\u事件、product\\u类别
下面是允许我启动流程的代码:
<?php
add_action( \'admin_menu\', \'slug_migrate_menu\' );
function slug_migrate_menu() {
add_submenu_page(\'edit.php?post_type=recipe\', \'Migration des slugs\', \'Migration des slugs\', \'manage_options\', \'slug-migrate\', \'slug_migrate_page\');
}
function slug_migrate_page() {
?>
<h1>Migration des slugs</h1>
<button id="migrateSlugBtn">Go !</button>
<div id="migrateSlugResult"></div>
<script>
jQuery(\'#migrateSlugBtn\').click(function(e) {
jQuery.post(
\'<?php echo admin_url( \'admin-ajax.php\' ); ?>\',
{
\'action\': \'slug_migrate\',
},
function(response){
jQuery(\'#migrateSlugResult\').append(response);
}
);
});
</script>
<?php
}
add_action( \'wp_ajax_slug_migrate\', \'slug_migrate\' );
add_action( \'wp_ajax_nopriv_slug_migrate\', \'slug_migrate\' );
function slug_migrate( $taxonomy ) {
// Taxonomies : recipe_category, recipe_type, recipe_event, product_category
// Pour chaque term des taxonomies : Effectuer un sanitize_title() du name du term et l\'afficher
// begin of code
// end of code
add_filter( \'editable_slug\', \'sanitize_slug\' );
die();
}
PS:以下是我目前所做的,我不知道这是否是一个很好的理由,欢迎提供任何帮助:
$terms = get_terms( $post->ID, $catslug);?>
<?php foreach($terms as $term) : ?>
<?php if($term->slug !== $term->name){
$find = array(
$term->slug
);
$replace = array(
$term->name
);
$replace = array_map( \'sanitize_title\', $replace );
$permalink = str_replace( $find, $replace, $permalink );
echo $permalink;
}?>
<?php
endforeach;
?>
嗨@chrisbergr
感谢您的帮助,我制作了一幅蒙太奇(图片)来描述我正在尝试的内容(事实上,我想动态更改我所有术语的名称,而不是手动进行):