WordPress - "作者#34;下拉菜单不记得谁是作者

时间:2014-12-08 12:50:57

标签: php wordpress

我添加了一个过滤器,可以让常规用户被选为帖子的作者。在选择作者并更新用户被分配给它的帖子后,它运作良好。

问题是,在这样做之后 - 当你去前端然后回到那个帖子的后端然后作者下拉菜单切换回管理员(好像WordPress不记得它是什么设置to,所以如果你更新帖子,它将再次被分配给管理员。)

似乎wordpress忘记了谁被选为作者。如何修改过滤器以使该下拉菜单记住谁被选为帖子的作者?

add_filter('wp_dropdown_users', 'theme_post_author_override');
function theme_post_author_override($output)
{
  // return if this isn't the theme author override dropdown
  if (!preg_match('/post_author_override/', $output)) return $output;

  // return if we've already replaced the list (end recursion)
  if (preg_match ('/post_author_override_replaced/', $output)) return $output;

  // replacement call to wp_dropdown_users
 $output = wp_dropdown_users(array(
   'echo' => 0,
  'name' => 'post_author_override_replaced',
  'selected' => empty($post->ID) ? $user_ID : $post->post_author,
  'include_selected' => true
 ));

 // put the original name back
 $output = preg_replace('/post_author_override_replaced/', 'post_author_override', $output);

  return $output;
}

1 个答案:

答案 0 :(得分:0)

这可能已经解决但我遇到了同样的问题并解决了它,所以想要分享解决方案。上面的代码需要第4行中的附加行。 我希望它有所帮助。

<xsl:template match="table">
  <table>
    <xsl:attribute name="style">
      <xsl:if test="@border">
        <xsl:value-of select="concat('border:', @border, '; ')"/>
      </xsl:if>
      <xsl:if test="@width">
        <xsl:value-of select="concat('width:', @width, '; ')"/>
      </xsl:if>
    </xsl:attribute>
    <xsl:copy-of select="@id"/>

    <!-- either this or apply-templates -->
    <xsl:copy-of select="*"/>

  </table>
</xsl:template>