Preview Button Custom

时间:2013-02-05 作者:Jimbo

我创建了一个简单的插件,将预览链接更改到正确的位置,因为它是一个自定义Wordpress安装到现有网站框架中的插件。

使用“preview\\u post\\u link”过滤器,我可以成功地更改链接,表示:

http://www.domain.com/wp-custom.php?p=123456&preview=true

将鼠标悬停在a标签上并检查该标签时,此操作非常有效:

<a class="preview button" href="http://www.domain.com/wp-custom.php?p=123456&amp;preview=true" target="wp-preview" id="post-preview">Preview</a>
右键单击并在新窗口/选项卡中打开,它将正常打开。但单击实际按钮,它无法在地址栏中生成url:

http://www.domain.com/?p=123456&preview=true

不太确定发生了什么或解决方法?我唯一能想到的是,wordpress上可能运行了某种JQuery。预览或#发布预览,这会影响直接单击按钮时的行为。

任何关于如何补救的想法都将不胜感激。非常感谢。

更新以显示修改wordpress预览链接的简单方法:

function custom_change_preview_link($link) {
    return preg_replace(\'/\\?/\',\'wp-custom.php?\',$link);
}
add_filter( \'preview_post_link\', \'custom_change_preview_link\' );
add_filter( \'preview_page_link\', \'custom_change_preview_link\' );

1 个回复
SO网友:Marie-Elaine Roy

我发现唯一可行的方法是实现中建议的第二个补丁this trac ticket

我知道这是核心文件中的补丁,但在WP(3.6)的下一个版本中,应该会有更改,所以更新应该不会有任何问题。

编辑注意/免责声明:以下迷你插件是从Daniel Bachhubers的“Edit Flow”GitHub插件和票证上发布的补丁中删除的。它没有经过测试,也没有由回答此问题的人添加

<?php
defined( \'ABSPATH\' ) OR exit;
/** Plugin Name: Fix Preview Link */
add_filter( \'preview_post_link\', \'preview_link_fix\' );
function preview_link_fix( $preview_link )
{
    $post = get_post( get_the_ID() );
    if (
        ! is_admin()
        OR \'post.php\' != $GLOBALS[\'pagenow\']
    )
        return $preview_link;

    $args = array(
         \'p\'       => $post->ID
        ,\'preview\' => \'true\'
    );
    return add_query_arg( $args, home_url() );
}

结束

相关推荐