使用快捷码部分显示表单

时间:2017-10-11 作者:Iurie

我有一个订阅表单,用户可以订阅从所需的帖子类别接收新闻。每个类别有两个接收/发送新闻的选项:每日或每周。此表单通过订阅页面上的快捷码显示。现在,当某个类别的帖子打开时,我想显示(有条件地?)在那篇文章的末尾,相同的订阅表单(因此无需多份)只有电子邮件字段和相应帖子类别的每日和每周选项,隐藏了表单的其余部分。问题是如何调整表单/快捷码代码,以便我能够像现在一样进一步使用它,充分显示它,但也可以在上面描述的场景中使用它?

代码(删除了一些不重要的元素):

function mailchimp_form_shortcode() { ?>

<div id="mc_embed_signup">
    <form action="..." method="post">
        <div id="mc_embed_signup_scroll">

            <div class="container">

                <div class="mc-field-group">
                    <label for="mce-EMAIL">E-mail: <span class="asterisk"> (required)</span></label>
                    <input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL" placeholder="your e-mail address">
                </div>

                <strong>Subscribe to categories: </strong>

                <div class="layout">
                    <p class="col col-main" role="main"> - News Category 1</p>
                    <p class="col col-complementary" role="complementary">
                        <input type="checkbox" value="4" name="group[...][4]" id="mce-group[...]-...-2"> daily<span class="asterisk">*</span>
                        <input type="checkbox" value="16" name="group[...][16]" id="mce-group[...]-...-3"> weekly
                    </p>
                </div>

                <div class="layout">
                    <p class="col col-main" role="main"> - News Category 2</p>
                    <p class="col col-complementary" role="complementary">
                        <input type="checkbox" value="2" name="group[...][2]" id="mce-group[...]-...-4"> daily<span class="asterisk">*</span>
                        <input type="checkbox" value="32" name="group[...][32]" id="mce-group[...]-...-5"> weekly
                    </p>
                </div>

                <div class="layout">
                    <p class="col col-main" role="main"> - News Category 3</p>
                    <p class="col col-complementary" role="complementary">
                        <input type="checkbox" value="64" name="group[...][64]" id="mce-group[...]-...-6"> daily<span class="asterisk">*</span>
                        <input type="checkbox" value="128" name="group[...][128]" id="mce-group[...]-...-7"> weekly
                    </p>
                </div>

            <div class="clear">
                <input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button">
            </div>

            </div>

        </div>
    </form>
</div>

<?php }

add_shortcode(\'mailchimp\', \'mailchimp_form_shortcode\');

1 个回复
最合适的回答,由SO网友:AddWeb Solution Pvt Ltd 整理而成

在函数mailchimp\\u form\\u shortcode()中,需要进行以下更改(特别是函数的第一行):

<?php
function mailchimp_form_shortcode($atts) {
    extract(shortcode_atts(array(), $atts));

    if(isset($attrs[\'type\']) && $attrs[\'type\'] == \'some_value\'){
            //return "form element";
    }

}
add_shortcode(\'mailchimp\', \'mailchimp_form_shortcode\');
?>
您的短代码如下:

[mailchimp type="some_value"]
这样,就可以将参数传递给shortcode函数。在这个shortcode函数中,可以根据传递的参数显示表单元素。

希望这对你有帮助。

结束

相关推荐

Vue.js + AJAX Shortcode

我知道以前有人问过这个问题,但我找不到具体用例的实质性答案。Overview我一直在使用RESTAPI和Vue开发一个基于Wordpress的网站。js作为前端框架。我在获取帖子、显示数据等方面没有问题。Issue自Vue以来。js在客户端运行,我在使用需要在php中呈现服务器端的插件/短代码时遇到了一些问题。我正在寻找一种解决方案,在php函数中呈现一个短代码,并将呈现的数据发送到我的前端,最终使用Vue显示它。js。JSvar http = new XMLHttpRequest(); var