草稿或待定帖子的Wordpress预览网址

时间:2014-11-23 16:49:28

标签: php wordpress permalinks

我的预览链接出现问题,为帖子状态为"草稿"生成。我想"等待"是一样的。 有一个如下定义的permastructure:

add_permastruct('post-type-name', '/page-name/%post-type-name%', array(
    'with_front' => false,
    'walk_dirs' => false
));

当我点击预览以发布帖子状态"已发布"它重定向到http://domain-name.dev/wordpress/page-name/post-type-name/。没关系。

当我点击预览以发布帖子状态为"草稿"它重定向到http://domain-name.dev/wordpress/?p=12345&post_type=post-type-name&preview_id=12345&preview=true&preview_nonce=123nonce45。不应用Permastructure。

WordPress版本4.安装在名为" wordpress"的子目录中。

htaccess的:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress

任何想法?

还在根文件夹中安装了新的WP 4,没有任何插件或自定义后期类型。完全一样。

感谢您帮助我。 来自柏林的欢呼声 克里斯托弗

1 个答案:

答案 0 :(得分:0)

那些仍然有这个问题的人。

我遇到了这个问题,但这是由我的自定义rewrite_rule派生的。 我已经通过修改get_preview_post_link args

解决了
add_filter( 'preview_post_link', 'custom_preview_post_link', 10, 2 );

function custom_preview_post_link( $link, \WP_Post $post )
{
//    if ($post->post_status != 'publish') {
         return remove_query_arg( 'preview_id', $link );
//    }
};

注意:我已经添加了一个条件来检查函数alter_normal_post_link()中的post_status!='发布',在这里将其称为add_filter('post_link','alter_normal_post_link',10,3);

这可能无法回答您的问题,而只是给您一个想法。