首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在编辑过程中填充wp/post.php文件?

如何在编辑过程中填充wp/post.php文件?
EN

Stack Overflow用户
提问于 2016-10-20 13:57:18
回答 1查看 364关注 0票数 0

在wp的post.php页面中,我喜欢在加载页面时填充post元。为此,我尝试了以下方法

代码语言:javascript
复制
add_action('load-post.php', 'show_buy_ticket_date');

function show_buy_ticket_date() {
    $screen = get_current_screen();

    if ($screen->post_type === 'ai1ec_event') {
        $post_id = filter_input(INPUT_GET, 'post');
        $buy_ticket_date_unix_timestamp = get_post_meta($post_id,
                'buy_ticket_date', TRUE);
    }

}

在这里,我获取了post的元值。但是,在加载/加载之前,如何在表单中的某个字段中填充它。

例如,该字段如下所示

代码语言:javascript
复制
<input class="ai1ec-date-input ai1ec-form-control datepicker hasDatepicker" name="ai1ec_admin_buy_ticket-date-input" id="ai1ec_admin_buy_ticket-date-input" type="date">
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-20 16:56:42

您需要将时间戳转换为适合于input的日期值,同时考虑到,如果时间戳在UTC时间内,您可能希望将它与当前时区对齐。

最后,使用input属性将日期值传递给value

代码语言:javascript
复制
date_default_timezone_set( 'Europe/Helsinki' );
$buy_ticket_date = date( 'Y-n-j', intval( $buy_ticket_date_unix_timestamp ));

<input
    class="ai1ec-date-input ai1ec-form-control datepicker hasDatepicker"
    name="ai1ec_admin_buy_ticket-date-input"
    id="ai1ec_admin_buy_ticket-date-input"
    type="date" ,
    value="<?php echo $buy_ticket_date; ?>
>

更新

考虑到input在某些第三方代码中的局限性,我将通过JavaScript更新该字段:

使用$buy_ticket_date传递局部JavaScript,PHP:

代码语言:javascript
复制
add_action( 'wp_enqueue_scripts', 'my_scripts' ) );
function my_scripts() {

    // ... get $buy_ticket_date_unix_timestamp based on post ID
    date_default_timezone_set( 'Europe/Helsinki' );
    $buy_ticket_date = date( 'Y-n-j', intval( $buy_ticket_date_unix_timestamp ));

    wp_register_script( 'my_script', MY_PLUGIN_URL . 'js/script.js', array( 'jquery' ) );
    wp_localize_script( 'my_script', 'buy_ticket_date', $buy_ticket_date );
    wp_enqueue_script( 'my_script' );
}

和JavaScript (script.js):

代码语言:javascript
复制
/*global document, jQuery */
(function ($) {
    'use strict';

    $(document).ready(function () {
        $('#ai1ec_admin_buy_ticket-date-input').val(buy_ticket_date);
    });
}(jQuery));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40156562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档