WordPress前端使用wp_editor上传文件并附加到文章中
如果需要做前端提交表单,文本编辑器难免会用到wp_editor。
但是如果直接调用这个函数,就会出现一些问题。 首先,由于前端使用,比如在自定义页面模板中使用,上传的文件会附加到这个页面,而不是新创建的文章。 . 这也会导致另一个问题。 因为wp_editor默认是当前要编辑的页面,如果是非管理员用户,是无法上传文件的,因为通常页面是管理员创建的。
其实我们需要的不是编辑当前页面,而是使用wp_editor这样的编辑器来编辑文本和上传文件。 然后将内容传递给 wp_insert_post 以创建文章。
研究了WordPress后台发文章的代码,发现打开new-post.php页面后,后台默认创建了自动草稿,然后更新了草稿。
因此,在前台,如果我们要上传附件并将其附加到新创建的文章中,我们也需要这样做。
先介绍,并创建默认文章
1 2 3 4 5 6 7 8 9 |
<span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">require_once</span><span class="token punctuation">(</span> <span class="token constant">ABSPATH</span> <span class="token punctuation">.</span> <span class="token single-quoted-string string">'wp-admin/includes/post.php'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$post</span> <span class="token operator">=</span> <span class="token function">get_default_post_to_edit</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'post'</span><span class="token punctuation">,</span> <span class="token boolean constant">true</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$post_ID</span> <span class="token operator">=</span> <span class="token variable">$post</span><span class="token operator">-</span><span class="token operator">></span><span class="token property">ID</span><span class="token punctuation">;</span> <span class="token function">wp_editor</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">''</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'content'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> |
这样wp编辑器就绑定到了新创建的文章而不是当前页面。 然后,我们使用 wp_update_post 来更新这个帖子,而不是创建一个新帖子。
所以你可以在表单中添加:
” />
然后获取内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$post</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'ID'</span> <span class="token operator">=</span><span class="token operator">></span><span class="token global">$_POST</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'post_ID'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token comment">//获取传递过来的需要更新的文章id</span> <span class="token single-quoted-string string">'post_author'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token variable">$user_id</span><span class="token punctuation">,</span> <span class="token comment">//用户,一般定义为当前用户</span> <span class="token single-quoted-string string">'post_title'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token global">$_POST</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'title'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'post_content'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token global">$_POST</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'content'</span><span class="token punctuation">]</span><span class="token punctuation">,</span><span class="token comment">// 获取wp_editor中的内容</span> <span class="token single-quoted-string string">'post_category'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token global">$_POST</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'cat'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'tags_input'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token function">str_replace</span><span class="token punctuation">(</span><span class="token single-quoted-string string">','</span><span class="token punctuation">,</span><span class="token single-quoted-string string">','</span><span class="token punctuation">,</span><span class="token global">$_POST</span><span class="token punctuation">[</span><span class="token single-quoted-string string">'post_tags'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'post_status'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token single-quoted-string string">'pending'</span><span class="token punctuation">,</span> <span class="token comment">// 'post_type' => $_POST['post_type']</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$new_post_id</span> <span class="token operator">=</span> <span class="token function">wp_update_post</span><span class="token punctuation">(</span> <span class="token variable">$post</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> |
注意:以上表格并不完整。 很多变量没有定义,不能直接复制使用。 这里是在WordPress编辑器前台上传文件并绑定到文章的问题。
由于网站搬家,部分链接失效,如无法下载,请联系站长!谢谢支持!
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » WordPress前端使用wp_editor上传文件并附加到文章中
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » WordPress前端使用wp_editor上传文件并附加到文章中