重写 URL 中的单词 - wordpress

rewrite word in URL - wordpress

我正在使用 wordpress 并购买了主题。 主题生成 url http://martin.heskovci.sk/avalon_td_gallery/zvierata/ and i want change it to http://martin.heskovci.sk/portfolio/zvierata/

我在 .htacces 和 functions.php 中尝试了一些但没有结果。我在代码中发现了一些东西

<a href="'.$avalon_td_post_permalink.'" class="avalon_td_btn"><span>'.esc_html__('View Full Gallery', 'avalon').'</span> <i class="xcon-right-open-big"></i></a>

我认为我必须重写“.$avalon_td_post_permalink”。但是我不知道怎么做。有人帮帮我吗?

更新 1

我找到了这个。我必须在哪里重写 "avalon_td_gallery"?我尝试更改重写行和最后一行,但在创建新画廊后我仍然得到 404。

// Arguments for gallery projects
            $args = array(
                'labels'                => $labels,
                'public'                => true,
                'publicly_queryable'    => true,
                'show_in_nav_menus'     => true,
                'show_in_admin_bar'     => true,
                'exclude_from_search'   => false,
                'show_ui'               => true,
                'show_in_menu'          => true,
                'menu_position'         => 4,
                'menu_icon'             => 'dashicons-format-gallery', //XXS_PLUGIN_URI . 'assets/img/portfolio-icon.png',
                'can_export'            => true,
                'delete_with_user'      => false,
                'hierarchical'          => false,
                'has_archive'           => true,
                'capability_type'       => 'post',
                'rewrite'               => array( 'slug' => 'avalon_td_gallery', 'with_front' => false ),
                'supports'              => array( 'title', 'editor', 'thumbnail' )
            );

            // Register our gallery post type
            register_post_type( 'avalon_td_gallery', $args );

更新 2:

'rewrite' => array( 'slug' => 'avalon_td_gallery', 'with_front' => false ),

至此

'rewrite' => array( 'slug' => 'portfolio', 'with_front' => false ),

重要的是,设置 -> 永久链接页面并点击保存。这将刷新重写规则,现在可以正常工作了!

我无法发表评论 - 所以我会在这里回复。

我会先在项目文件夹中搜索包含 avalon_td_gallery.

的文件

根据主题生成 url 的方式 - 这将决定您将如何更改 url。如果它是使用自定义 Post 类型制作的,那么您只需更改重写规则即可。 avalon_td_gallery 将在 register_post_type 函数中。并且要么更改值,要么向该函数添加重写规则:

'rewrite' => array('slug' => 'portfolio'),

显然,您应该确保使用此重写规则没有冲突。

另一种创建自定义重写规则 'wordpress way' 的方法是 add_rewrite_rule 函数。如果您在其中找到 avalon_td_gallery,只需更改重写规则的第一个参数,然后在 Wordress 中更新您的永久链接。例如:

add_rewrite_rule( 'avalon_td_gallery/([^/]+)', 'index.php?gallery_item=$matches[1]', 'top' );

希望对您有所帮助。

更新

因此您不应更改所有文件中 avalon_td_gallery 的所有实例。您仍然希望处理程序或查询变量保持为 avalon_td_gallery,您只希望更改 url。这是 register_post_type 函数的一个非常简单的示例。

function codex_custom_init() {
    $args = array(
        'public' => true,
        'label'  => 'Gallery',
        'rewrite' => array( 'slug' => 'portfolio' )
    );

    register_post_type( 'avalon_td_gallery', $args );
}

add_action( 'init', 'codex_custom_init' );

因此,只有鼻涕虫会发生变化。如果您将 register_post_type 处理程序更改为其他内容,它将认为它是一个新的 post 类型。所以不要这样做:

register_post_type( 'portfolio', $args ); // -< THIS IS WRONG

如果您可以恢复 post 类型的注册,回到 avalon_td_gallery 图库,这将使您的数据保留在该命名空间下,但仅更改 url。