是否在页面的永久链接中间插入字符串?

时间:2021-03-03 作者:csaborio

我知道更明智的做法是依靠档案,这样我的新闻URL将是:

领域com/新闻/

然而,由于我是如何设置的,以便客户端轻松修改内容,我创建了3个新闻页面(每个页面引用3个类别),在每个页面中,都有代码显示每个类别的新闻列表。

我想更改这些页面的永久链接,以便:

领域com/媒体中

永久链接是:

领域com/新闻/媒体

我已经环顾四周了page_link 似乎是我想要的。

下面是我的回调函数(我已验证调用了该函数):

    public static function change_news_permalinks( $url, $post ) {  
        $url = "{$url}something/";
        return $url;
    }
这只是一个测试,如果这起作用,那么我会继续写条件,这样更改只会在这3页中的一页发生。

然而,无论我查看哪个页面,页面加载时永久链接保持不变。

我是在错误地使用它,还是我误解了这个钩子实际上允许你执行的操作?

谢谢

1 个回复
SO网友:sMyles

page_link 即使您更改了它的显示或使用内容,也无法在访问URL时检测到它,这需要在请求期间进行处理以对其进行解析。

您可以考虑添加重写,或者您可以使用更简单的方法尝试使用类似的方法(或者查看他们的代码以了解他们是如何做到的):https://wordpress.org/plugins/custom-permalinks/

他们的做法如下:https://plugins.trac.wordpress.org/browser/custom-permalinks/trunk/frontend/class-custom-permalinks-frontend.php

相关推荐

Apply_Filters()对所需的参数进行切片

我正在尝试向WooCommerce订单中的每个退款行添加一个按钮(其功能超出了这个问题的范围,足以说明它需要退款id作为参数)。我发现这些行是在woocommerce\\includes\\admin\\meta Box\\views\\html订单退款中创建的。无法重写的php。然而,有一项行动:do_action( \'woocommerce_admin_order_item_values\', null, $refund, $refund->get_id() ); 这似乎非常适合我的