首页 文章

Wordpress钩子在显示帖子编辑页面之前编辑帖子元数据

提问于
浏览
0

我正试图在帖子的元数据中编辑一个字段,然后才能在屏幕上显示 .

我一直在看'load-post.php'钩子,但这是在加载帖子之前调用的(如果我已经理解正确的话),所以post id和meta数据为null . 我尝试过其他的钩子,但我还没能做到这一点 .

在编辑页面上显示以下帖子元字段之前需要进行更改 .

$post_price = get_post_meta(get_the_ID(), 'price', TRUE);

示例:数据库中的价格= 10,但我希望它在帖子编辑页面上显示时为Price = 15 .

任何链接,提示和想法都非常感谢 . :)

编辑:
我目前的解决方案

add_action('load-post.php','calculate_price');
function calculate_price(){
    $post_id = $_GET['post'];
    //get price from post by post_id and do stuff
}

这是正确的方法吗?

1 回答

  • 0

    EDIT: 好吧我以为你只需要使用帖子的ID . 如果您需要更改post对象(已经从db加载并准备打印),则可以使用'the_post' . 既然你只需要访问帖子ID,我会这样做:

    function my_the_post_action( $post ) {
        $screen = get_current_screen();
        if( is_admin() && $screen->parent_base == 'edit' && get_post_type() == 'product' ) {
            $post_id = $post->ID;
            $price = (int) get_post_meta( $post_id, 'price', true );
            update_post_meta( $post_id, 'price', $price + 5 );
        } 
    }
    add_action( 'the_post', 'my_the_post_action' );
    

    这部分:

    get_post_type()=='产品'

    没有必要,但您应该确定要运行这段代码的帖子类型(基于帖子类型,类别,元数据等) . 没有它将在管理查询中每次执行 . 此代码未经过测试,如果出现问题,请随时报告 .

相关问题