在插件内部调用当前的POST参数

时间:2013-02-15 作者:She Hulk

我编辑了插件WP用户Frontend(用于从Frontend编辑帖子),为两种不同的帖子类型创建了两个不同的编辑页面。下面是处理edit\\u链接的原始函数。

function wpuf_edit_post_link( $url, $post_id ) {
if ( is_admin() ) {
    return $url;
}

$override = wpuf_get_option( \'override_editlink\', \'yes\' );
if ( $override == \'yes\' ) {
    $url = \'\';
    if ( wpuf_get_option( \'enable_post_edit\' ) == \'yes\' ) {
        $edit_page = (int) wpuf_get_option( \'edit_page_id\' );
        $url = get_permalink( $edit_page );

        $url = wp_nonce_url( $url . \'?pid=\' . $post_id, \'wpuf_edit\' );
    }
}

return $url;
}

add_filter( \'get_edit_post_link\', \'wpuf_edit_post_link\', 10, 2 );
如何调用函数中的当前post参数?我用过get_post 但它不起作用(我想是因为它不在循环中…)。这是我编辑的函数片段。201和203是正确的编辑页面ID:页面内部有一些短代码,可以将它们转换为编辑页面。

$override = wpuf_get_option( \'override_editlink\', \'yes\' );
if ( $override == \'yes\' ) {
    $url = \'\';
    if ( wpuf_get_option( \'enable_post_edit\' ) == \'yes\' ) {

    $post = get_post($post_id);

    if ($post->post_type == \'type1\') {
        $url = get_permalink( 201 );
        $url = wp_nonce_url( $url . \'?pid=\' . $post_id, \'wpuf_edit\' );
    }

    if ($post->post_type == \'type2\') {
        $url = get_permalink( 203 );
        $url = wp_nonce_url( $url . \'?pid=\' . $post_id, \'wpuf_edit\' );
    }
    }
}
这个代码怎么了?

1 个回复
最合适的回答,由SO网友:Christopher Ross 整理而成

而不是使用$post = get_post($post_id);, 你可以打电话global $post; 它将加载当前post的值,前提是您没有触发任何其他循环。

结束

相关推荐

在Functions.php中创建“无文件”页面模板

(所谓“页面模板”,我指的是具有\"Template Name\" header 可在管理页面的“模板”下拉字段中选择。)在多个实例中,我构建了页面模板,可以通过挂接到\\u内容或pre\\u get\\u帖子或类似的内容来完成。这让我想知道是否有一种方法可以在functions.php 或者不创建主题文件本身的插件。我想这样做的原因:在我想到的场景中,我通常只是复制页面。php几乎一字不差。这意味着将来对页面的任何更改。php需要制作两次。随着儿童主题的更新,这更加令人痛苦</我喜欢“模板”字段U