我已经配置好了%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\',
));
这将迫使返回的条款遵守您添加它们的顺序。结束