在我的wordpress网站上,我有一个带有蛞蝓(anim)的类别(例如动物)和一个带有名称(anims)的标签(带有相同的蛞蝓(anim)。
我的问题是,我想删除类别,但保留标记。但是,每当我尝试更改类别中的任何设置时,标记也会更改(例如,当我将类别slug更改为anim old时,标记的slug也会更改)。
这似乎与他们有着相同的鼻涕虫这一事实有关wordpress认为他们是一样的。
是否有任何方法(即使在使用sql的数据库中)取消类别和标记的链接,以便我可以删除类别?
在我的wordpress网站上,我有一个带有蛞蝓(anim)的类别(例如动物)和一个带有名称(anims)的标签(带有相同的蛞蝓(anim)。
我的问题是,我想删除类别,但保留标记。但是,每当我尝试更改类别中的任何设置时,标记也会更改(例如,当我将类别slug更改为anim old时,标记的slug也会更改)。
这似乎与他们有着相同的鼻涕虫这一事实有关wordpress认为他们是一样的。
是否有任何方法(即使在使用sql的数据库中)取消类别和标记的链接,以便我可以删除类别?
问题是分类法的WordPress数据库模式。在数据库中,具有相同slug的两个不同分类中的两个术语共享术语表中的同一行。它们在terms\\u taxonomy表中有两行进行区分。
因此,如果只想删除类别,则必须在WordPress数据库上执行自定义sql。
我为pourpose编写了一个函数:
function delete_slug_sharing_term( $slug = \'\', $taxonomy = \'category\' ) {
$term = get_term_by( \'slug\', sanitize_title($slug), $taxonomy );
if ( empty($term) || is_wp_error($term) ) return FALSE;
global $wpdb;
$q = "DELETE FROM $wpdb->term_taxonomy
WHERE taxonomy = %s
AND term_taxonomy_id = %d";
return (bool) $wpdb->query( $wpdb->prepare( $q, $taxonomy, $term->term_taxonomy_id) );
}
这样使用:delete_slug_sharing_term( \'animals\', \'category\' );
你需要打电话only once, 因此,放在某个地方(可能在“admin\\u init”上),在仪表板上检查类别是否已删除,如果已删除,请删除函数调用(如果需要,也可以删除函数)。我只想显示一些CSSthis page.在主题的标题中。php,我已经尝试了这两种方法:<?php if(is_page(\'events\')) { ?> <style> #main { background-image: none; } </style> <?php } ?> 以及<?php if(is_page(43)) { ?> <style>&