改造WordPress主题实现有用户投稿功能

我们有些网站如果希望用户投稿,较好的办法还是直接提供前端投稿功能。有些主题自带的话那就省心,如果没有自带我们也可以用投稿插件实现,或者我们可以用自建投稿页面。这里简单的整理,如果有需要的可以参考。

1、创建文件(submit.php)

    <?php
    /* Template Name: 网址提交 */ 
    get_header();
    $bloginfo = get_bloginfo(\'url\');
    if( isset($_POST[\'tougao_form\']) && $_POST[\'tougao_form\'] == \'send\') {
    	global $wpdb;
    	$current_url = $bloginfo.\'/site\';   // 注意修改此处的链接地址
    	$last_post = $wpdb->get_var(\"SELECT `post_date` FROM `$wpdb->posts` ORDER BY `post_date` DESC LIMIT 1\");
     
    	// 表单变量初始化
    	$title =  isset( $_POST[\'tougao_title\'] ) ? trim(htmlspecialchars($_POST[\'tougao_title\'], ENT_QUOTES)) : \'\';
    	$url = isset( $_POST[\'tougao_url\'] ) ? $_POST[\'tougao_url\'] : \'\';
    	$description =  isset( $_POST[\'tougao_description\'] ) ? trim(htmlspecialchars($_POST[\'tougao_description\'], ENT_QUOTES)) : \'\';
    	$icon = isset( $_POST[\'tougao_icon\'] ) ? $_POST[\'tougao_icon\'] : \'\';
     
    ?>
     
    <?php if ( empty($title) || mb_strlen($title) < 1 ) { ?>
     
    <script>alert(\"网站标题不能为空!\");</script>
    <meta http-equiv=\"refresh\" content=\"0;url=<?php $bloginfo ?>\">
     
    <?php die; } ?>
     
    <?php if ( empty($url) || mb_strlen($url) < 1 ) { ?>
     
    <script>alert(\"网站地址不能为空!\");</script>
    <meta http-equiv=\"refresh\" content=\"0;url=<?php $bloginfo ?>\">
     
    <?php die; } ?>
     
    <?php if ( empty($description) || mb_strlen($description) < 5 ) { ?>
     
    <script>alert(\"网站描述不能为空,且不得少于5个字!\");</script>
    <meta http-equiv=\"refresh\" content=\"0;url=<?php $bloginfo ?>\">
     
    <?php die; } ?>
     
    <?php if ( empty($icon) || mb_strlen($icon) < 1 ) { ?>
     
    <script>alert(\"网站icon图标不能为空!\");</script>
    <meta http-equiv=\"refresh\" content=\"0;url=<?php $bloginfo ?>\">
     
    <?php die; } ?>
     
    <?php
    	$post_content = \'网站标题: \'.$title.\'<br />网站地址: \'.$url.\'<br />网站描述: \'.$description.\'<br />网站icon图标:\'.$icon;
    	$tougao = array(
    		\'post_title\' => $title, 
    		\'post_content\' => $post_content,
    		\'post_status\' => \'publish\',
    		//\'post_type\' => \'site\' //tougao_type是要保存到的自定义文章类型
    	);
     
    	// 将文章插入数据库
    	$status = wp_insert_post( $tougao );
     
    	if ($status != 0) { 
    ?>
    <script>alert(\"发布成功!\");</script>
    <meta http-equiv=\"refresh\" content=\"0;url=<?php $bloginfo ?>\">
    <?php } else { ?>
    <script>alert(\"发布失败,请重新填写!\");</script>
    <meta http-equiv=\"refresh\" content=\"0;url=<?php $bloginfo ?>\">
    <?php } } ?>

我们可以创建一个页面,在主题目录中。

2、控制投稿表单

    <form method=\"post\" action=\"<?php echo $_SERVER[\"REQUEST_URI\"]; $current_user = wp_get_current_user(); ?>\">
    	<input type=\"text\" id=\"tougao_title\" value=\"\" name=\"tougao_title\" placeholder=\"网站标题\"/>
    	<input type=\"text\" id=\"tougao_url\" value=\"\" name=\"tougao_url\" placeholder=\"网站地址\" />
    	<input type=\"text\" id=\"tougao_url\" value=\"\" name=\"tougao_url\" placeholder=\"网站类别(请填写贵站类别)\"/>
    	<input type=\"text\" id=\"tougao_description\" name=\"tougao_description\" placeholder=\"网站描述\">
    	<input type=\"text\" id=\"tougao_icon\" value=\"\" name=\"tougao_icon\" placeholder=\"网站icon图标\"/>
    	<div class=\"t\">
    		<input type=\"hidden\" value=\"send\" name=\"tougao_form\" />
    		<button class=\"button\" type=\"submit\" value=\"提交\" >提交申请<tton>
    		<button class=\"button\" type=\"reset\" value=\"重填\" >清空<tton>
    	</div>
    </form>

这里同样是上面的表单内容。

3、创建页面

这里我们可以依托上面的提交表单然后创建投稿页面。

5/5 - (1 vote)
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享