Wordpress: шорткоды - PullRequest
       27

Wordpress: шорткоды

0 голосов
/ 21 марта 2012

У меня есть следующий шорткод. То, что я хотел бы сделать, это превратить этот шорткод в область боковой панели, чтобы я мог запустить достойный виджет контактов. Я гуглил и попробовал несколько учебных пособий, но не могу заставить их работать.

Index.php

<?php
                $classes = '';
                if (strtolower($menuItem->title) == $precision_contact_page) {
            ?>
            <div id="<?php echo strtolower($menuItem->title); ?>scroller">
            <?php
                $page_data = get_page($menuItem->page_id);
                echo do_shortcode($page_data->post_content);
            ?>

functions.php:

    //contactform shortcode
    function contactform_shortcode( $atts, $content = null ) {
        extract( shortcode_atts( array(
            'class' => 'content'
        ), $atts ) );

        $returncontent = '<div class="' . esc_attr($class) . '">';
        $returncontent .= '<a href="#" id="info" class="open">ContactInformation</a>
                <h5>Get In Touch</h5><div id="contactform">
                <div id="response"></div>
                <form id="precision-contact-form" method="POST" action="" class="form">
                    <div id="main">
                        <p class="name">
                            <input type="text" name="uname" id="uname" />
                            <label for="uname" class="overlabel">Name</label>
                        </p>
                        <p class="email">
                            <input type="text" name="uemail" id="uemail" />
                            <label for="uemail" class="overlabel">E-mail</label>
                        </p>
                        <p class="text">
                            <textarea name="ucomments" id="ucomments" ></textarea>
                        </p>
                        <p class="submit">
                            <button type="submit" name="submit" id="submit" class="graybutton">Send Email</button>
                        </p>
                    </div><!--end main-->
                </form>
            </div><!--end contact form-->';
        $returncontent .= '</div>';
        return $returncontent;
    }
    add_shortcode('contactform', 'contactform_shortcode');
?>

Ответы [ 2 ]

1 голос
/ 21 марта 2012

мимо этого, где вы хотите в боковой панели

 <?php echo do_shortcode('[contactform']'); ?>
0 голосов
/ 22 марта 2012

Если вы хотите, чтобы ваш шорткод работал в боковой панели, вы можете сделать следующее.

в functions.php добавить следующее

add_filter('widget_text', 'do_shortcode');

Это позволит запустить все содержимое вашего текстового виджета с помощью функции * do_shortcode *.

Теперь вы можете добавить новый текстовый виджет на боковую панель и использовать свой шорткод внутри него, как если бы вы находились на экране редактирования записи.

[contactform]
...