WordPress Justnews主题友链申请页面

4.6
(5)

今天,Justnews主题售后群,有人送了我个友链申请模板。虽然看起来跟justnews主题不太搭,但经过魔改适配,最终还是很完美的。而且,实现了登录后才可以申请友链的方法。提交表单后,直接在后台自动新增一个友情链接,标注待审核,并标记为私密链接。

等待站长去后台看到友链,稍作修改,就可以立马添加友链,不用再自己添加网址、添加网站标题等,着实很方便。

Wordpress Justnews主题友链申请页面

下面,就开始讲述如何做到,并于文末给出下载链接。

未修改前的php文件

<?php
/*
Template Name: 自助申请友链
* 提示:友情链接,需在后台审核
*/
?>
<?php
if( isset($_POST['blink_form']) && $_POST['blink_form'] == 'send'){
global $wpdb;

// 表单变量初始化
$link_name = isset( $_POST['blink_name'] ) ? trim(htmlspecialchars($_POST['blink_name'], ENT_QUOTES)) : '';
$link_url = isset( $_POST['blink_url'] ) ? trim(htmlspecialchars($_POST['blink_url'], ENT_QUOTES)) : '';
$link_description = isset( $_POST['blink_lianxi'] ) ? trim(htmlspecialchars($_POST['blink_lianxi'], ENT_QUOTES)) : ''; // 联系方式
$link_target = "_blank";
$link_visible = "N"; // 表示链接默认不可见

// 表单项数据验证
if ( empty($link_name) || mb_strlen($link_name) > 20 ){
wp_die('连接名称必须填写,且长度不得超过30字<p><a href="/links">点此返回</a>');
}

if ( empty($link_url) || strlen($link_url) > 60 ) { //验证url
wp_die('链接地址必须填写<p><a href="/links">点此返回</a>');
}

$sql_link = $wpdb->insert(
$wpdb->links,
array(
'link_name' => '【待审核】--- '.$link_name,
'link_url' => $link_url,
'link_target' => $link_target,
'link_description' => $link_description,
'link_visible' => $link_visible
)
);

$result = $wpdb->get_results($sql_link);

wp_die('链接提交成功,【等待站长审核】<p><a href="/">返回首页</a>', '提交成功');

}

get_header();
?>

<div id="main">
<div class="container">
<div class="content content-link-application">
<div class="form-header">
<h1>友链申请</h1>
<p>您可以通过提交下面的表单贵站相关信息。</p>
</div>
<div class="wb-form contact-form nice-validator n-default">

<!--表单开始-->
<form method="post" class="mt20" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">

<div class="form-group">
<label for="blink_name"><font color="red">*</font> 网站名称:</label>
<input type="text" size="40" value="" class="form-control" id="blink_name" placeholder="请输入网站名称" name="blink_name" />
</div>

<div class="form-group">
<label for="blink_url"><font color="red">*</font> 网址地址:</label>
<input type="text" size="40" value="" class="form-control" id="blink_url" placeholder="请输入网站地址" name="blink_url" />
</div>

<div class="form-group">
<label for="blink_lianxi">网站简介:</label>
<input type="text" size="40" value="" class="form-control" id="blink_lianxi" placeholder="请输入网站简介" name="blink_lianxi" />
</div>

<div>
<input type="hidden" value="send" name="blink_form" />
<button type="submit" class="btn btn-primary">提交申请</button>
<button type="reset" class="btn btn-default">重填</button>
(提示:带有<font color="red">*</font>,表示必填项~)
</div>
</form>
<!--表单结束-->

</div>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<?php endwhile; else: ?>
<?php endif; ?>
</div>
</div>
</div>
<?php get_footer(); ?>

以上未修改的php文件,命名为links.php,编码格式修改为utf-8

放于主题根目录,再去网站后台新建一个页面,页面模板选自助申请友链,发布即可。以上php文件适合任意wordpress主题,但看起来不是那么完美。

适配justnews主题后的自助申请友链源码

以下源码为修改后的,完美适配justnews主题的源码:

<?php
/*
Template Name: 自助申请友链
* 提示:友情链接,需在后台审核
*/
?>
<?php
if (! is_user_logged_in()) {
auth_redirect();
}
if( isset($_POST['blink_form']) && $_POST['blink_form'] == 'send'){
global $wpdb;
// 表单变量初始化
$link_name = isset( $_POST['blink_name'] ) ? trim(htmlspecialchars($_POST['blink_name'], ENT_QUOTES)) : '';
$link_url = isset( $_POST['blink_url'] ) ? trim(htmlspecialchars($_POST['blink_url'], ENT_QUOTES)) : '';
$link_description = isset( $_POST['blink_lianxi'] ) ? trim(htmlspecialchars($_POST['blink_lianxi'], ENT_QUOTES)) : ''; // 联系方式
$link_target = "_blank";
$link_visible = "N"; // 表示链接默认不可见
// 表单项数据验证
if ( empty($link_name) || mb_strlen($link_name) > 20 ){
wp_die('连接名称必须填写,且长度不得超过30字<p><a href="/links">点此返回</a>');
}
if ( empty($link_url) || strlen($link_url) > 60 ) { //验证url
wp_die('链接地址必须填写<p><a href="/links">点此返回</a>');
}
$sql_link = $wpdb->insert(
$wpdb->links,
array(
'link_name' => '【待审核】--- '.$link_name,
'link_url' => $link_url,
'link_target' => $link_target,
'link_description' => $link_description,
'link_visible' => $link_visible
)
);
$result = $wpdb->get_results($sql_link);
wp_die('链接提交成功,【等待站长审核】<p><a href="/">返回首页</a>', '提交成功');
}
get_header();
global $options, $post;
$sidebar = get_post_meta( $post->ID, 'wpcom_sidebar', true );
$sidebar = !(!$sidebar && $sidebar!=='');
$body_classes = implode(' ', apply_filters( 'body_class', array() ));
$show_indent = isset($options['show_indent']) ? $options['show_indent'] : get_post_meta($post->ID, 'wpcom_show_indent', true);
$hide_title = 0;
if(preg_match('/(qapress|member-profile|member-account|member-login|member-register|member-lostpassword)/i', $body_classes)) {
    $hide_title = 1;
}
if($sidebar && preg_match('/(member-account|member-login|member-register|member-lostpassword)/i', $body_classes)){
    $sidebar = 0;
    update_post_meta($post->ID, 'wpcom_sidebar', '0');
}
$class = $sidebar ? 'main' : 'main main-full';
$page_template = get_post_meta($post->ID, '_wp_page_template', true);
if($page_template == 'page-fullwidth.php' || $page_template == 'page-fullnotitle.php'){
    update_post_meta($post->ID, '_wp_page_template', 'default');
    update_post_meta($post->ID, 'wpcom_sidebar', '0');
}
if($page_template == 'page-notitle.php' || $page_template == 'page-fullnotitle.php'){
    update_post_meta($post->ID, '_wp_page_template', 'default');
}
$banner = get_post_meta( $post->ID, 'wpcom_banner', true );
if(!$hide_title && $banner){
    $banner_height = get_post_meta( $post->ID, 'wpcom_banner_height', true );
    $text_color = get_post_meta( $post->ID, 'wpcom_text_color', true );
    $bHeight = intval($banner_height ? $banner_height : 300);
    $bColor = ($text_color ? $text_color : 0) ? ' banner-white' : '';
    $description = term_description(); ?>
    <div <?php echo wpcom_lazybg($banner, 'banner'.$bColor, 'height:'.$bHeight.'px;');?>>
        <div class="banner-inner container">
            <h1><?php the_title(); ?></h1>
        </div>
    </div>
<?php } ?>
    <div class="wrap container">
<style>
@media (min-width: 991px){
.el-boxed .hentry {
    padding: 30px 200px!important;
}}
</style>

        <?php if( !$hide_title && isset($options['breadcrumb']) && $options['breadcrumb']=='1' ) wpcom_breadcrumb('breadcrumb'); ?>
        <div class="<?php echo esc_attr($class);?>">
            <?php while( have_posts() ) : the_post();?>
                <article id="post-<?php the_ID(); ?>" <?php post_class();?>>
                    <div class="entry">
                        <?php if(!$banner && !$hide_title){ ?>
                            <div class="entry-head">
                                <h1 class="entry-title"><?php the_title();?></h1>
                            </div>
                        <?php } ?>
                        <div class="entry-content<?php echo $show_indent?' text-indent':''?>">
<!--表单开始-->
<form method="post" class="mt20" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">

<div class="form-group">
<label for="blink_name"><font color="red">*</font> 网站名称:</label>
<input type="text" size="40" value="" class="form-control" id="blink_name" placeholder="请输入网站名称" name="blink_name" />
</div>

<div class="form-group">
<label for="blink_url"><font color="red">*</font> 网址地址:</label>
<input type="text" size="40" value="" class="form-control" id="blink_url" placeholder="请输入网站地址" name="blink_url" />
</div>

<div class="form-group">
<label for="blink_lianxi">网站简介:</label>
<input type="text" size="40" value="" class="form-control" id="blink_lianxi" placeholder="请输入网站简介" name="blink_lianxi" />
</div>

<div>
<input type="hidden" value="send" name="blink_form" />
<button type="submit" class="btn btn-primary">提交申请</button>
<button type="reset" class="btn btn-default">重填</button>
(提示:带有<font color="red">*</font>,表示必填项~)
</div>
</form>
<!--表单结束-->

                            <?php wpcom_pagination();?>
                        </div>
                    </div>
                </article>
            <?php endwhile; ?>
        </div>
        <?php if( $sidebar ){ ?>
            <aside class="sidebar">
                <?php get_sidebar();?>
            </aside>
        <?php } ?>
    </div>
<?php get_footer();?>

同样的,主题根目录新建links.php文件,文件编码为utf-8,内容如上。后台新增页面,页面模板为自助申请友链。魔改后的代码,需要登录才可以访问自助申请友链页面。

  • 上述代码中的第8-10行,表示登录后才可以访问自助申请友链页面。
  • 上述代码中的第76-81行,表示修改大屏幕下表单宽度(左右边距调整为300px)

当然,页面边栏最好选择无边栏,否则不太美观,看自己调整吧。

使用演示

links.php文件下载

由于上面已经提供了源码,这里防止有些人不会新增php文件,直接给出源码文件:

支付 ¥1 后解锁剩余的内容,购买后请刷新页面

共计5人评分,平均4.6

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/website/wordpress-justnews-apply.html

发表评论

登录后才能评论
本站APP
本站APP
分享本页
返回顶部