Press-发布后停止重定向至固定链接

时间:2017-02-04 作者:J.Smith

我经常使用WordPress内置的“按此”功能。

我最近为我的网站安装了一个新的专业付费主题,无论出于何种原因,这打破了“按此”的正常行为,如下所示:

–过去,在“按此”编辑器中单击“发布”按钮后,文章将被发布,然后您将被重定向到同一窗口中的永久链接。

–现在发生的是,我没有被重定向到帖子的永久链接,而是被重定向到以下格式的查询字符串URL:http://www.my-website-url.com/?post_type=post&p=12345

我自己也尝试过研究它,但我在php/javascript/ajax编程方面的知识非常有限,而且关于“按下此键”的工作原理的详细文档也很少。

我也联系了主题开发人员,但他说他不知道他的主题是什么导致了“按这个”的问题,他“不支持插件冲突”。

有谁知道“按这个”是如何工作的,能帮我弄明白这一点吗?主题可能会做什么导致这种行为?

如果我花下一周的时间在这件事上,我也许最终能自己弄明白,但我想对于“知情者”来说,这可能很容易。

非常感谢。

1 个回复
最合适的回答,由SO网友:J.Smith 整理而成

好吧,在把问题缩小到函数之后get_post_permalink() 被调用的wp-admin/includes/class-wp-press-this.php 在第181行,由于某种原因,当我使用我的第三方主题时,返回的是Querystring而不是Permalink,我实现了一个不理想的解决方案,但它是有效的!

我在第181行之后添加了以下代码:

if ( \'publish\' === get_post_status( $post_id ) ) {
    $redirect = get_post_permalink( $post_id ); // at this point the function returned a querystring
/**/
/*START - Attempted fix for not redirecting to Permalinks with 3rd Party Theme*/
/**/
$post = get_post($post_id);
$slug = $post->post_name;
$post_link = $redirect;
$post_link = str_replace("%$post->post_type%", $slug, $post_link);
$post_link = home_url( user_trailingslashit($post_link) );
$redirect = $post_link;
/**/
/*END - Attempted fix for not redirecting to Permalinks with 3rd Party Theme*/
/**/
} elseif {...}
因此,我基本上从get\\u post\\u permalink()中提取了部分代码,并手动将其添加到此处,以便在最初调用$redirect = get_post_permalink( $post_id );.

再一次,这远非理想!它确实有效,但它只是解决了症状,而不是根本原因。

现在就可以了,我将等待主题开发人员通过主题更新提供更持久的解决方案!

一旦发生这种情况,我将更新这篇文章,主题开发人员将从这个问题的根本原因开始。

相关推荐

Permalinks - Archives

WordPress文档说:WordPress offers you the ability to create a custom URL structure for your permalinks and archives. https://codex.wordpress.org/Settings_Permalinks_Screen 我看到此屏幕将如何为特定帖子/页面创建永久链接,但我没有看到此设置屏幕上关于如何为存档帖子/页面创建链接的任何其他详细信息。有人能澄清一下吗?