在弹出模式表单中使用WordPress函数时出现问题

时间:2013-03-02 作者:ItsGeorge

我正在开发一个插件,我在tinymce编辑器中添加了一个按钮,该按钮会弹出一个模式表单,其中包含短代码的选项,然后将包含所选选项的短代码插入到帖子中。

模态弹出一个包含html表单和一些javascript的php文件。我想在表单中使用wp\\u dropdown\\u categories(),而不是为猫输入文本。

这里有一个片段。我把我用于分类的原始文本框注释掉了,我试图将wp函数插入其中,但它不起作用。我错过了什么?我不知道是否需要调用某个类或某个全局变量。

    <?php 
    ?>    
    <head>
    <title>Box Shortcode</title> 

    ...Some more html and some js...       


    <input type="radio" name="tax" value="category" id="selcat">

    <?php wp_dropdown_categories(); ?> //This doesn\'t work


    <!--<div class="input-append">
        <input type="text" name="category" id="catselection" class="categorynamebox" placeholder="Category" value="" disabled="disabled" />
    </div>-->
    <label for="randomcat">
    <input type="checkbox" id="randomcat" disabled="disabled" >
    Use a random category
    </label>

    ..some more html and js...

    </body>
    <?php

    ?>

3 个回复
最合适的回答,由SO网友:ItsGeorge 整理而成

所以我只需要添加

<?php 
require_once("../../../../wp-load.php");
wp_dropdown_categories(); 
?>
我以前试过这个,但后来我发现我离应该去的地方只有一个目录了。我添加了一个额外的目录级别(../),现在显示类别下拉列表。

这是可行的,但如果我应该采取不同的做法,我愿意接受建议。

SO网友:Androliyah

你可能遗漏了一些论点。

<?php wp_dropdown_categories(\'show_count=1&hierarchical=1\'); ?>

有关更多参数,请查看此处Codex

SO网友:Milo

当您直接加载php文件时,您没有在WordPress环境的上下文中加载它,因此您没有访问任何WordPress函数的权限。我可能会通过获取所有数据来处理这个问题via AJAX. 您的另一个选择是请求WordPress管理页面,将函数挂接到早期操作,如admin_init 并在那里输出模态内容,然后退出。

结束

相关推荐

Php和jQuery/javascript之间通信的最佳方式

我有一个自定义的post类型“pakket”,在其中我将各种数据放在分类术语中。这种自定义帖子类型有大约50个条目,每个条目都有自己的分类术语值。例如:帕克特Hakhoutsingel(瓦德达林)=0.6(opbrengstderving)=是(aanlegkosten)=“字符串”博辛格(瓦德达林)=6等等我在带有表单的页面上的下拉框中有相同的50个对应值(Hakhoutingel、bossingel等)。http://areal-agro.nl/tool/?page_id=6我想从数据库(使用php)