Wie man das erste Tag in Permalinks verwendet

Ich habe versucht, %tag% in Permalinks, aber es zeigt nicht Tag-Name in den Permalinks … Was ich tun möchte ist, den ersten Tag-Namen in den Permalinks zu verwenden. Also, wie geht das? Vielen Dank

Solutions Collecting From Web of "Wie man das erste Tag in Permalinks verwendet"

Verwenden Sie add_rewrite_tag() , um den Platzhalter zu registrieren, und filtern Sie post_link , um das richtige Tag einzufügen. Verwenden Sie get_the_tags() , um die Tags für einen Post get_the_tags() .

Beispiel-Plugin, das ich in einem Projekt verwendet habe:

 < ?php /** * Plugin Name: T5 Tag as rewrite tag * Description: Use %tag% in permalinks. * Version: 2012.09.02 * Author: Thomas Scholz * Author URI: http://toscho.de * Licence: MIT * License URI: http://opensource.org/licenses/MIT */ add_action( 'init', array ( 'T5_Rewrite_Tag_Tag', 'init' ) ); /** * Adds '%tag%' as rewrite tag (placeholder) for permalinks. */ class T5_Rewrite_Tag_Tag { /** * Add tag and register 'post_link' filter. * * @wp-hook init * @return void */ public static function init() { add_rewrite_tag( '%tag%', '([^/]+)' ); add_filter( 'post_link', array( __CLASS__, 'filter_post_link' ) , 10, 2 ); } /** * Parse post link and replace the placeholder. * * @wp-hook post_link * @param string $link * @param object $post * @return string */ public static function filter_post_link( $link, $post ) { static $cache = array (); // Don't repeat yourself. if ( isset ( $cache[ $post->ID ] ) ) return $cache[ $post->ID ]; if ( FALSE === strpos( $link, '%tag%' ) ) { $cache[ $post->ID ] = $link; return $link; } $tags = get_the_tags( $post->ID ); if ( ! $tags ) { $cache[ $post->ID ] = str_replace( '%tag%', 'tag', $link ); return $cache[ $post->ID ]; } $first = current( (array) $tags ); $cache[ $post->ID ] = str_replace( '%tag%', $first->slug, $link ); return $cache[ $post->ID ]; } }