将自定义帖子类型导出为xml?

时间:2015-08-09 17:01:56

标签: php xml wordpress

对于我正在处理的网页,我创建了一个插件,用户可以将各种成员及其信息放入其中,并且我创建了一个页面模板,我将这些成员输出到页面。

这应该是应该的,但我想下载xml'页面下方的按钮。

所以我尝试添加到我的页面模板

<div class="download_button">

    <?php

    $args = array(
        'post_type' => 'members',
        'posts_per_page' => -1,
        'order' => 'ASC',
        );

    $loop = new WP_Query( $args );

    $out_array = array();

    while ( $loop->have_posts() ) : $loop->the_post();
    $post_meta = get_post_meta($post->ID);

    $mail_array = explode(', ', $post_meta['Members_contact_mail'][0]);
    $email = array();
    if (is_array($mail_array)) {
        foreach ($mail_array as $key) {
            $email[] = $key;
        }
    }

    $phone_array = explode(', ', $post_meta['Members_contact_phone'][0]);
    $phone = array();
    if (is_array($phone_array)) {
        foreach ($phone_array as $key_phone) {
            $phone[] = $key_phone;
        }
    }

    $title = get_the_title();

    $out_array[] = array(
        $title,
        $post_meta['Members_address'][0],
        $post_meta['Members_person_in_charge'][0],
        $post_meta['Members_entry_date'][0],
        $phone,
        $email,
        $post_meta['Members_oib'][0]
        );

    endwhile;

    $phpexcel = new Excel_Xml;
    $phpexcel->addWorksheet('members', $out_array);
// $phpexcel->sendWorkbook('members.xls');

    ?>
    <a href="<?php echo esc_url( $phpexcel->getWorkbook() );?>" download=""><i class="bm-download"></i> <?php esc_html_e('members.xml', 'theme') ?></a>
</div>

在我的网页模板中,我已经包含了excel_xml.php中名为$phpexcel->sendWorkbook('members.xls'); 的文件。

现在困扰我的是如何创建一个有效的下载链接。

如果我取消注释

download_button

在我的excel_xml.php div中我实际上得到了xml文件,所以我可以看到这个有效。但那不是我需要的。我已尝试使用 $phpexcel = new Excel_Xml; $phpexcel->addWorksheet('members', $out_array); $phpexcel->writeWorkbook('members.xls'); ?> <a class="member_download" href="<?php echo home_url(); ?>members.xls" target="_blank"><i class="bm-download"></i> <?php esc_html_e('members.xls', 'theme') ?></a> 文件中的其他功能,但这些功能均无效。

有没有人有这方面的经验?

解决方案:

这似乎有效:

.xls

输入页面时,/* Defining Variables */ var toggled = false; var thing = ""; var inMethod = false; /* Defining Methods */ $(document).on("click", "#toggle", function() { if($(this).attr("class") == "fa fa-check-square-o fa-5x checked") { $(this).attr("class", "fa fa-square-o fa-5x unchecked"); } else { $(this).attr("class", "fa fa-check-square-o fa-5x checked"); } console.log(); }); function newThing() { $("body").html($("body").html() + "<div id='input'><div class='input-group margin-bottom-sm' id='imad'><span class='input-group-addon'><i class='fa fa-file-text-o fa-1x'></i></span><input id='myInput' class='form-control' type='text' placeholder='Input'></div></div>"); inMethod = true; console.log(inMethod); var box = $("#input"); var ema = $("#imad"); box.css("top", screen.height / 2 - 175); box.css("left", screen.width / 2 - 175); ema.css("top", screen.height / 64); ema.css("left", screen.width / 64); } window.addEventListener("keydown", function(e){ if(e.keyCode == 13 && inMethod) { thing = $("#myInput").val(); $("#checklist").html( $("#checklist").html() + "<div id='checkOption'><i id='toggle' class='fa fa-square-o fa-5x unchecked'></i><span id='ds' class='fa fa-4x'>" + thing + "</span></div>" ); window.location.hash = ""; inMethod = false; console.log(inMethod); $("#input").remove(); } }); $(window).on('hashchange', function() { if(window.location.hash.substr(1) == "new") { inMethod = false; newThing(); } else if(window.location.hash.substr(1) == "clear") { $("#checklist").html(""); } else if(window.location.hash.substr(1) == "delete") { alert("Disabled for now"); } }); 文件将保存到根文件夹。当您单击按钮时,它会下载文件。

0 个答案:

没有答案