找到一种方法来检索通过Metabox插件更新到网页的数据

时间:2020-01-01 作者:Sami on Line

我开发了一个customer metabox插件,将用户详细信息保存到db中,并在我的网站中检索回“联系我们”页面。

但我搜索了一种方法来检索“联系我们”页面上的数据,但我找不到方法。

请查看此代码,并告诉我如何检索通过metabox.phppage-contact.php

metabox.php

<?php

add_action(\'add_meta_boxes\', \'wpl_owt_register_metabox_cpt\');
function wpl_owt_register_metabox_cpt()
{
    global $post;

    if(!empty($post))
    {
        $pageTemplate = get_post_meta($post->ID, \'_wp_page_template\', true);

        if($pageTemplate == \'page-contact.php\' )
        {
            add_meta_box(
                \'owt-cpt-id\', // $id
                \'Contact Details\', // $title
                \'wpl_owt_book_function\', // $callback
                \'page\', // $page
                \'normal\', // $context
                \'high\'); // $priority
        }
    }
}


   /**********Callback function for metabox at custom post type book******************/

 function wpl_owt_book_function( $post ) {
    //echo "<p>Custom metabox for custom post type</p>";

    define("_FILE_", "_FILE_");

    wp_nonce_field( basename(_FILE_), "wp_owt_cpt_nonce");

    echo "<label for=\'txtPhoneNum\'>Phone</label><br>";
    $phone_num = get_post_meta($post->ID, "telNo" , true);
    echo "<input type =\'tel\' name = \'txtPhoneNum\' value = \'" . $phone_num . "\'\' placeholder = \'Phone Number\' /><br><br>";

    echo "<label for=\'txtEmail\'>Email</label><br>";
    $email = get_post_meta($post->ID, "email" , true);
    echo "<input type =\'email\' name = \'txtEmail\' value = \'" . $email . "\'\' placeholder = \'Email Address\' /><br><br>";

    echo "<label for=\'txtHours\'>Hours of Operation</label><br>";
    $hours = get_post_meta($post->ID, "hourofOps" , true);
    echo "<input type =\'text\' name = \'txtHours\' value = \'" . $hours . "\'\' placeholder = \'Working Hours\' /><br><br>";
}

add_action("save_post" , "wpl_owt_save_metabox_data" , 10 , 2);

function wpl_owt_save_metabox_data($post_id, $post){

    //verify nonce
    if(!isset($_POST[\'wp_owt_cpt_nonce\']) || !wp_verify_nonce($_POST[\'wp_owt_cpt_nonce\'], basename(_FILE_))){
        return $post_id;
    }

    //verify slug value
    $post_slug = "page";
    if($post_slug != $post->post_type){
        return;
    }

    //save value to db filed
    $pub_tel = \'\';
    if(isset($_POST[\'txtPhoneNum\'])){
        $pub_tel = sanitize_text_field($_POST[\'txtPhoneNum\']);
    }

    else{
        $pub_tel = \'\';
    }

    update_post_meta($post_id, "telNo", $pub_tel);


    $pub_email = \'\';

    if(isset($_POST[\'txtEmail\'])){
        $pub_email = sanitize_text_field($_POST[\'txtEmail\']);
    }

    else{
        $pub_email = \'\';
    }

    update_post_meta($post_id, "email", $pub_email);


    $pub_hours = \'\';

    if(isset($_POST[\'txtHours\'])){
        $pub_hours = sanitize_text_field($_POST[\'txtHours\']);
    }
    update_post_meta($post_id, "hourofOps", $pub_hours);
}

?>

page-contact.php

 <!-- Contact Info -->
 <div class="contact-info col-md-4 col-sm-4 margin-top-20 padding-left-20">
    <label class="contact-label pull-left width-wide">Contact Info</label>
    <p><strong>IT\'S SHOWTIME TOWING</strong><br /><br /> Phone: <a href="tel:0450749863">0450749863</a><br /><br /> 
    Email: <a href="mailto:[email protected]">[email protected]</a><br /><br /> 
   <strong>Hours of Operation</strong><br /><br /> 
   <a href="#">24/7</a><br /><br /> <strong>Terms And Conditions</strong> <a href="terms_conditions.html">Click Here</a></p>                    
</div>
<!-- // Contact Info -->
谢谢大家!

2 个回复
SO网友:Sami on Line

所以我终于找到了一种方法。

这是代码。

page-contact.php

 <!-- Contact Info -->
                    <div class="contact-info col-md-4 col-sm-4 margin-top-20 padding-left-20">
                        <label class="contact-label pull-left width-wide">Contact Info</label>

                         <p><strong>IT\'S SHOWTIME TOWING</strong><br /><br /> 
                            <!--Phone: <a href="tel:0450749863">0450749863</a><br /><br /> -->
                            Phone: <a href="tel:0450749863"><?php echo get_post_meta( $post->ID, \'telNo\', true );?></a><br /><br />
                            <!--Email: <a href="mailto:[email protected]">[email protected]</a><br /><br /> -->
                            Email: <a href="mailto:[email protected]"><?php echo get_post_meta($post->ID, "email" , true); ?></a><br /><br />
                            <strong>Hours of Operation</strong><br /><br /> 
                            <!--<a href="#">24/7</a><br /><br />-->
                            <a href="#"><?php echo get_post_meta($post->ID, "hourofOps" , true); ?></a><br /><br /> 
                            <strong>Terms And Conditions</strong> <a href="terms_conditions.html">Click Here</a>
                         </p>                    
                         </div><!-- // Contact Info -->
希望这个答案对像我这样的行业新人有所帮助。

SO网友:Chetan Vaghela

您还必须在href 属性也是。当前您添加了静态值。当您从后端更改值时,它只会显示,但当您单击它时,它会考虑tel:mail: 属性值。因此,更改代码如下:

Phone: <a href="tel:<?php echo get_post_meta( $post->ID, \'telNo\', true );?>"><?php echo get_post_meta( $post->ID, \'telNo\', true );?></a><br /><br />


Email: <a href="mailto:<?php echo get_post_meta($post->ID, \'email\' , true); ?>"><?php echo get_post_meta($post->ID, \'email\' , true); ?></a><br /><br />

相关推荐

在WordPress网站上用MathJax编写LaTeX公式:最简单的方法(可能不会影响Header.php)?

我试图在我的网站的数学部分添加一些使用乳胶的数学公式,http://onlinemathbiz.com/linear-algebra/. 我已经安装了MathJax,可以从设置中看到它。然而,当我试图用Elemenator编辑上述网站时,我在显示数学方面遇到了问题。以下是我尝试的内容:我继续使用Elementor编辑它,然后首先选择小部件“文本编辑器”,然后选择“自定义HTML”,并尝试键入以下内容:$\\sqrt(2)$ [math] \\sqrt(2) [/math] 。。