PHP变量被回显两次


php variable gets echoed twice

当调用函数时,我试图回显表单。我的代码如下:

function add_post(){
....
echo '<form method="post" action="">
      <input type="text" name="post_title" size="45" id="input-title"/>
      <textarea rows="5" name="post_content" cols="66" id="text-desc"></textarea>'
  .wp_dropdown_categories().'
    <input type="hidden" name="new_post" value="1"/>
    <input class="subput round" type="submit" name="submit" value="Post"/>
    </form>
  ';
}

,但wp_dropdown_categories()显示两次。下面是HTML输出:

<div class="entry-content">
   <!-- this should not be displayed -->
   <select class="postform" id="cat" name="cat">
    <option value="9" class="level-0">Entertainment</option>
   </select>
   <!-- form starts here -->
   <form action="" method="post">
      <input type="text" id="input-title" size="45" name="post_title">
      <textarea id="text-desc" cols="66" name="post_content" rows="5"></textarea>
      <select class="postform" id="cat" name="cat">
        <option value="9" class="level-0">Entertainment</option>
      </select>
    <input type="hidden" value="1" name="new_post">
    <input type="submit" value="Post" name="submit" class="subput round">
   </form>
</div>

知道为什么wp_dropdown_categories()被调用两次吗?

默认为wp_dropdown_categories() echo。因此,您应该以以下方式中断代码:

echo '<form method="post" action="">
      <input type="text" name="post_title" size="45" id="input-title"/>
      <textarea rows="5" name="post_content" cols="66" id="text-desc"></textarea>
  ';
wp_dropdown_categories();
echo '<input type="hidden" name="new_post" value="1"/>
    <input class="subput round" type="submit" name="submit" value="Post"/>
    </form>
  ';

或将echo变量作为零传递给函数,如下:

echo '<form method="post" action="">
      <input type="text" name="post_title" size="45" id="input-title"/>
      <textarea rows="5" name="post_content" cols="66" id="text-desc"></textarea>'
  .wp_dropdown_categories('echo=0')).'
    <input type="hidden" name="new_post" value="1"/>
    <input class="subput round" type="submit" name="submit" value="Post"/>
    </form>
  ';

试试这个…参见函数wp_dropdown_categories()

的文档
function add_post(){
....
echo '<form method="post" action="">
      <input type="text" name="post_title" size="45" id="input-title"/>
      <textarea rows="5" name="post_content" cols="66" id="text-desc"></textarea>'
  .wp_dropdown_categories(array('echo'=>0)).'
    <input type="hidden" name="new_post" value="1"/>
    <input class="subput round" type="submit" name="submit" value="Post"/>
    </form>
  ';
}