固定链接问题:只在所有帖子前面添加一个前缀,格式为‘Video’

时间:2018-02-27 作者:Tasa

This article 是我获取初始代码的地方,但我想针对所有具有video post\\u格式的帖子。我可以将$post\\u链接更改为我想要的内容,但当我将代码更改为仅针对视频post\\u格式时,它会中断。

有没有人能简单地解决这个问题?

function add_rewrite_rules( $wp_rewrite ) {

  $new_rules = array(
          \'videos/(.+?)/?$\' => \'index.php?post_type=post&post_format=video&name=\'. $wp_rewrite->preg_index(1),
      );

  $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}

add_action(\'generate_rewrite_rules\', \'add_rewrite_rules\');


function change_blog_links($post_link, $id=0){

  global $post;
  $post = get_post($id);
  $postformat = get_post_format( $post_id );

if ( is_object($post) && $post->post_type == \'post\' && $post->post_format == \'video\') {
  return $post_link = home_url(\'/videos/\'. $post->post_name.\'/\');
}

  return $post_link;
}

add_filter(\'post_link\', \'change_blog_links\', 1, 3);
我尝试的另一种方法是将上面的if语句更改为:

if ( has_post_format( \'video\' )) {
  return $post_link = home_url(\'/videos/\'. $post->post_name.\'/\');
}
但这也行不通。我也不知道如何设置我的重写规则,这样我就不会有重复的内容,它现在的编写方式并不能修复它。

如果有什么不同的话,我会使用DIVI-Extra主题。

1 个回复
SO网友:Tasa

我发现上面的问题与Divi&;有关;正在使用的额外主题。该主题有自己的功能,并以自己的方式注册帖子格式,在帖子格式前添加“et”。如下图所示,解决了上述具体问题:

if ( is_object($post) && $post->post_type == \'post\' && \'video\' == et_get_post_format( $post->ID ))    {
    return $post_link = home_url(\'/videosnew/\'. $post->post_name.\'/\');
}
这正是在使用Divi主题时,post format功能发挥作用的关键所在:

et_get_post_format( $post->ID )
代替标准的WordPress post format功能:

get_post_format( $post->ID )

结束

相关推荐

How to replace permalinks

我已将wordpress项目导出并导入live server。现在的问题是,我将permalink结构作为“localhost”格式。当我单击网站中的任何链接时,它会将我重定向到localhost。我怎样才能改变这一点?我的htaccess文件如下所示<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /myproject/ RewriteRule ^index\\.php$ - [L] RewriteCo