固定链接中的多个标签问题

时间:2012-11-15 作者:Hasan

我已经配置好了%tag% 对于wordpress中的永久链接,这里是How to use first tag in permalinks. 但是,当我在一篇文章中发布多个标签时,我面临着一种问题
假设我为一篇帖子写了三个标签,它们是:Backlinks, All About SEO, Web Promotion<因此,我只想在permalinks中使用第一个标记名,但问题是所有标记都是按帖子中的字符排序的,所以不幸的是,在permalink中它将使用www.example.com/All About SEO/page/ 虽然我想用第一个tag 在permalinks中,因此在这种情况下,所需的permalink应如下所示:www.example.com/Backlinks/page/
So, how to use the first tag name for the permalinks 请帮助:)

1 个回复
最合适的回答,由SO网友:chrisguitarguy 整理而成

中有一列term_relationships 的表term_order 这似乎意味着可以设定术语的顺序。这就是说,看起来它实际上不起作用——核心没有以任何方式使用它。

有点乱摸wp_set_object_terms, get用于为对象(帖子类型、用户)分配术语的函数揭示了以下一点:

<?php
$t = get_taxonomy($taxonomy);
if ( ! $append && isset($t->sort) && $t->sort ) {
    $values = array();
    $term_order = 0;
    $final_tt_ids = wp_get_object_terms($object_id, $taxonomy, array(\'fields\' => \'tt_ids\'));
    foreach ( $tt_ids as $tt_id )
        if ( in_array($tt_id, $final_tt_ids) )
            $values[] = $wpdb->prepare( "(%d, %d, %d)", $object_id, $tt_id, ++$term_order);
    if ( $values )
        if ( false === $wpdb->query( "INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join( \',\', $values ) . " ON DUPLICATE KEY UPDATE term_order = VALUES(term_order)" ) )
            return new WP_Error( \'db_insert_error\', __( \'Could not insert term relationship into the database\' ), $wpdb->last_error );
}
这似乎可以设置sort 关于分类法的争论为true和WP将为您排序。这个sort 这个参数似乎没有文档记录,但一些测试代码表明它确实有效。

<?php
add_action(\'init\', \'wpse72703_modify_tags\', 100);
function wpse72703_modify_tags()
{
    global $wp_taxonomies;
    $wp_taxonomies[\'post_tag\']->sort = true;
}
using tags in permalinks 要更改此选项:

$tags = get_the_tags( $post->ID );
到。。。

$terms = wp_get_object_terms($post->ID, \'post_tag\', array(
    \'orderby\' => \'term_order\',
));
这将迫使返回的条款遵守您添加它们的顺序。

结束

相关推荐

widgetlogic and permalinks

我试图使用widgetlogic在某些页面上有条件地显示菜单。每个菜单都使用如下标记is_page(array(\"Page Name\", \"Page Name 2\" ...)), 在我尝试更改permalinks之前,它一直工作得很好(因此所有菜单都会从各自的页面中消失)。我做错什么了吗?是否有解决方法?