欢迎光临
请一秒记住我们的网址:www.xinfangs.com !

WordPress 安全第一步,修改登录地址插件:WPS Hide Login

时间煮雨阅读(861)


众所周知,WordPress 的后台网址都是 wp-admin,这样的坏处是经常会遇到被暴力破解等情况,造成网站内容被删改等等情况,要避免这样的情况,还是要站长提高wordpress安全和网站安全意识,那么第一步,就是要修改后台登录网址,把网站的门焊死。

WPS Hide Login是一个轻量的 WordPress 插件,使用 WPS Hide Login 可以修改 WordPress 后台登录地址,而且还会禁止访问WordPress 的核心目录和文件。该插件不会重命名或修改程序核心文件,停用插件即可恢复原来的登录地址。

插件使用方法:

1、通过 WordPress 后台插件中,可以搜索:WPS Hide Login ,找到这个插件。或者前往官网:WPS Hide Login 下载。

2、安装完成,启用插件,进入后台的设置—常规里,在最下面会出现“Login url”设置,输入要自定义的登录url后缀,如下图:

需要注意一点:

1、和缓存插件的兼容性

如果您使用的不是WP Rocket 的页面缓存插件,则应将新登录URL的标签添加到不缓存的页面列表中。WP Rocket已经与该插件完全兼容。

对于W3 Total Cache和WP Super Cache,此插件将为您提供一条消息,其中包含指向您应更新的字段的链接。

2、忘记了网址怎么办?

转到MySQL数据库并whl_page在options表中查找的值,或者wps-hide-login从plugins文件夹中删除文件夹,通过wp-login.php登录并重新安装插件。

在多站点安装whl_page中,如果选项表中没有此类选项,则该选项将位于sitemeta表中。

国内 WP 用户必备:WordPress API 镜像:解决 WordPress无法更新、插件无法安装、 提示 429 Too Many Request 问题

时间煮雨阅读(688)


近期国内(包括中国大陆及港澳台地区)执行任何有关插件、主题、核心的升级 / 安装时均会提示「429 Too Many Requests」导致操作失败。具体原因为 download.wordpress.org 遭受了来自国内的大流量攻击从而面向国内的 CDN 服务停摆。

该问题已持续数月,在很大程度上阻碍了国内网站正常更新 WordPress 核心及相关周边产品,站点安全性得不到任何保障。WordPress 官方尚未采取措施,具体讨论可见:Is wordpress.org restricting visits from China region

现,nicetheme 设置了一个反向代理服务器来代理api.wordpress.org。针对所有服务器架设在国内的用户提供解决方案:通过 积木箱子 安装并启用 「WordPress 更新镜像」即可正常使用所有服务,而且间接解决了后台加载缓慢的问题。

疑问解答

问:这款积木收费吗?

答:非会员9.9,会员和超级会员均可免费下载。为什么收费?反代,要买服务器,流量在跑,费用在增。我们需要对此积木进行收费来支付更新代理服务器的费用。

问:通过奈思这个积木更新WordPress 版本安全吗?

答:我们就是为了解决用户安全问题的,避免使用其他不安全的渠道更新Wordpress 内核,版本,以及插件。

购买&安装

安装方式

建议安装前暂停使用缓存插件并关闭站点 CDN 加速。
全新安装:官网下载积木箱子插件并启用,在网站后台「积木->积木箱子」,一键安装 「WordPress 更新镜像」,并启用。

插件下载 :

纯代码给WordPress网站添加独立下载页面

时间煮雨阅读(722)


首先简单介绍下下载单页,刚开始的解决方法是使用插件实现 WordPress 独立下载页面的功能,一般来说下载单页就是在当前文章页插入一个按钮或者一个面板,点击之后的下载文件是在一个单独的页面的,这样的好处就是可以增加很多的下载说明以及广告,另外这样也可以增加访客的浏览量。单位我们主要想实现的功能是:点击文章中的下载列表,会跳转到一个独立的页面上去,上面会有下载地址,而且有文件介绍,还可以放置广告。其实这个功能很多的 wordpress 主题网站都实现了,下面简述下本站实现纯代码给 WordPress 网站添加独立下载页面功能的过程:

第一步:

首先第一步就是给主题增加一个页面,将下面代码复制并保存为 download.php。

 <?php
    /*
        template name: 下载模板页面
        description: template for Git theme
    */
    get_header();
    $pid = isset( $_GET['pid'] ) ? trim(HTMLspecialchars($_GET['pid'], ENT_QUOTES)) : '';
    if( !$pid ) { wp_redirect( home_url() );}
    $title = get_the_title($pid);
    $values1 = get_post_custom_values('git_download_name',$pid);
    emptyempty($values1) ? Header('Location:/') : $theCode1 = $values1[0];
    $values2 = get_post_custom_values('git_download_size',$pid);
    emptyempty($values2) ? Header('Location:/') : $theCode2 = $values2[0];
    $values3 = get_post_custom_values('git_download_link',$pid);
    emptyempty($values3) ? Header('Location:/') : $theCode3 = $values3[0];
    ?>
    <style type="text/css">#filelink a:hover{background:#4094EF none repeat scroll 0 0;color:#FFF!important;transition-duration:.3s;border-color:#FFF}#filelink a{margin:25px 15px 25px 0px;color:#4094EF!important;padding:5px 50px;font-family:微软雅黑,"Microsoft YaHei";font-size:19px;border:1px solid #4094EF;box-shadow:0 1px 3px rgba(0,0,0,.1)}</style>
    <div class="wrap">
        <div id="primary" class="content-area">
            <main id="main" class="site-main" role="main">
                <?php while (have_posts()) : the_post(); ?>
                <div class="article-content">
                <h2>资源信息</h2>
                <div class="alert alert-success">
                <ul class="infos clearfix">
                    <li>资源名称:<?php echo $theCode1; ?></li>
                    <li>文件大小:<?php echo $theCode2; ?></li>
                    <li>更新日期:<?php echo get_post($pid)->post_modified; ?></li>
                    </ul>
                </div>
                <h2>下载地址</h2>
                <div id="filelink">
                    <center>
                    <?php
                        if ($theCode3) {
                            $git_download_links = explode("\n", $theCode3);
                            foreach ($git_download_links as $git_download_link) {
                                $git_download_link = explode("  ", $git_download_link);
                                echo '<a href="' . trim($git_download_link[0]) . '"target="_blank" rel="nofollow" data-original-title="' . esc_attr(trim($git_download_link[2])) . '" title="' . esc_attr(trim($git_download_link[2])) . '">' . trim($git_download_link[1]) . '</a>';
                                }
                            }
                    ?>
                    </center>
                </div>
                <div class="clearfix"></div>
                <h2>下载说明</h2>
                <div class="alert alert-info" role="alert">下载说明;下载说明;下载说明;下载说明;下载说明;下载说明</div>
                <h2>免责声明</h2>
                <div class="alert alert-warning" role="alert">免责声明;免责声明;免责声明;免责声明;免责声明</div>
                </div>
            <?php endwhile; ?>
            </main><!-- #main -->
        </div><!-- #primary -->
    </div><!-- .wrap -->
    <?php get_footer();?>

经过上面的修改,这个文件就可以保存了,记住编码是 utf-8(无 bom)的哦,这段代码是在 WordPress 默认主题 17 的默认页面基础上修改的,然后新建页面,别名为 download,选择下载单页模板,然后发布就可以了。这里说下,理论上来说,这里其实就已经做好了下载单页的功能,只是在使用的时候不方便,不实用,所以为了方便使用还需要继续修改代码。

第二步:

打开后台 >> 新建页面 >> 选择模板,此处选择“下载模板页面”,然后页面名字就叫下载中心吧,然后页面的别名就是 download,其实如果你觉得页面名字英文的不太好,也可以写做其他名字,但是别名一定要是 download,也就是说这个页面的 URL 应该是这样的 http://localhost/download,做好之后发布就好了,别去访问页面哦,一般来说页面会自动回到首页的,这个页面是不可以直接访问的,这里就做的可以了,进入下一个步骤。

第三步:

打开主题的 functions.php 文件,把下面代码放进去,这个代码是为了增加短代码功能和短代码按钮的

  //下载单页短代码
    function page_download($atts, $content = null) {
        return '<a class="lhb" href="'.site_url().'/download?pid='.get_the_ID().'" target="_blank" rel="nofollow noopener">点击下载</a>';
    }
    add_shortcode('pdownload', 'page_download');
    //添加编辑器按钮
    function download_tags($mce_settings) {
    ?>
    <script type="text/javascript">
    QTags.addButton( 'hy_download', '下载按钮', '[pdownload]', '' );
    </script>
    <?php
    }
    add_action('after_wp_tiny_mce', 'download_tags');

嗯,这样就可以了,这段代码为了建立 download 短代码按钮的的,但是还没有结束,接着看下一步。

第四步:

使用下载单页的时候我们需要用到自定义栏目,发布文章的时候先把自定义栏目打开(此步操作只需要操作一次以后不用再次操作),然后在自定义栏目那里有一个新建自定义栏目

输入 git_download_name,然后右侧输入文件的名字,比如:苍老师的那些事.RMVB,继续输入自定义栏目 git_download_size,然后右侧输入文件的大小,比如:233MB,然后继续输入自定义栏目 git_download_link,然后右侧输入文件的下载链接

注意:这里的链接是需要专门格式的,格式为:链接 按钮名字 备注,每个内容中间用两个空格间隔,这里做好之后,在 WordPress 文本编辑器点击『下载按钮』,然后发布文章吧,然后去看看文章,点击下载按钮是不是进入了一个单独的页面。

Royal Audio Player - 音乐MP3音频播放器WordPress插件 - v6.1

时间煮雨阅读(831)


Royal Audio Player WordPress 插件是一款功能强大、可定制的响应性极强的 mp3/音频/视频/youtube 播放器,适用于任何 wrodpress 主题,还与 WooCommerce 兼容,可在所有主要浏览器和移动设备上运行,如 iPhone、iPad、IOS、Android、Windows mobile 或桌面。Royal Audio Player WordPress 插件支持无限播放列表,每个播放列表可以有无限曲目,还可以播放 mp4 视频和 youtube 视频。播放列表可以从简单的 HTML 标记、XML 文件、mp3/mp4 文件夹、播客、官方文件中加载。fm、Youtube 和 SoundCloud 播放列表。包含大量功能,如广泛的外部 API、深度链接、私人/密码保护曲目、加密曲目源/路径、弹出窗口、多个共享按钮、可定制的外观、Shoutcast 和 Icecast 支持、Youtube 和 mp4/HTML5 视频支持、HTTP 直播/HLS/m3u8 音频支持、短代码生成器、自定义帖子类型、,这是市面上最令人印象深刻、最完整的音频/mp3/mp4/youtube 播放器。

WordPress 菜单添加自定义选项打造超级菜单

时间煮雨阅读(839)


最近疫情期间静止在家,终于有时间研究这个超级菜单,上篇是 用小工具创建 WordPress 超级菜单 ,再介绍一个通过为 WordPress 菜单添加自定义选项,再利用短代码打造超级菜单的方法,废话不说直接上代码。

将代码添加到当前主题函数模板 functions.php 中:

// 设置添加字段
    function zm_menu_custom_fields( $item_id, $item ) {
    	$menu_code = get_post_meta( $item_id, 'zm_menu_code_checkbox', true );
    	$menu_shortcode = get_post_meta( $item_id, 'zm_menu_shortcode', true );
    	?>
 
    	<p class="zm-menu-code-label description" style="margin: 10px 0">
    		<label for="zm-menu-code-<?php echo $item_id; ?>" >
    			<input type="checkbox" id="zm-menu-code-<?php echo $item_id; ?>" name="zm_menu_code[<?php echo $item_id; ?>]" <?php checked( $menu_code, true ); ?> />
    			为顶级菜单添加CSS类(仅在顶级菜单勾选)
    		</label>
    	</p>
 
    	<p class="zm-menu-shortcode-label description">
    		<label for="zm-menu-shortcode-<?php echo $item_id; ?>">
    			输入短代码(仅在菜单子项目中使用)
    		</label>
    		<input type="hidden" class="nav-menu-id" value="<?php echo $item_id; ?>" />
    		<div class="logged-input-holder">
    			<input type="text" name="zm_menu_shortcode[<?php echo $item_id; ?>]" id="zm-menu-shortcode-<?php echo $item_id ;?>" value="<?php echo esc_attr( $menu_shortcode ); ?>" style="width: 100%;">
    		</div>
    	</p>
    	<?php
    }
 
    add_action( 'wp_nav_menu_item_custom_fields', 'zm_menu_custom_fields', 10, 2 );
 
    // 保存字段
    function zm_save_menu_custom_item_meta( $menu_id, $menu_item_db_id ) {
    	$button_value = ( isset($_POST['zm_menu_code'][$menu_item_db_id] ) && $_POST['zm_menu_code'][$menu_item_db_id] == 'on' ) ? true : false;
    	update_post_meta( $menu_item_db_id, 'zm_menu_code_checkbox', $button_value );
 
    	if ( isset( $_POST['zm_menu_shortcode'][$menu_item_db_id] ) ) {
    		$sanitized_data = sanitize_text_field( $_POST['zm_menu_shortcode'][$menu_item_db_id] );
    		update_post_meta( $menu_item_db_id, 'zm_menu_shortcode', $sanitized_data );
    	} else {
    		delete_post_meta( $menu_item_db_id, 'zm_menu_shortcode' );
    	}
    }
 
    add_action( 'wp_update_nav_menu_item', 'zm_save_menu_custom_item_meta', 10, 2 );
 
    // 前端输出
    function zm_menu_custom_output( $title, $item ) {
    	if( is_object( $item ) && isset( $item->ID ) ) {
    		$menu_shortcode = get_post_meta( $item->ID, 'zm_menu_shortcode', true );
 
    		// 输出菜单标题,可以删除
    		if ( ! empty( $menu_shortcode ) ) {
    			$title = '<span class="zm-menu-custom-title">'.$title.'</span>';
    		}
 
    		// 输出短代码
    		if ( ! empty( $menu_shortcode ) ) {
    			$title .= '<span class="show-menu-shortcode">' . do_shortcode( $menu_shortcode ) . '</span>';
    		}
    	}
 
    	return $title;
    }
 
    add_filter( 'nav_menu_item_title', 'zm_menu_custom_output', 10, 2 );
 
    // 添加CSS类
    function zm_menu_custom_add_class( $classes, $menu_item ) {
    	$menu_code = get_post_meta( $menu_item->ID, 'zm_menu_code_checkbox', true );
    	$menu_shortcode = get_post_meta( $menu_item->ID, 'zm_menu_shortcode', true );
 
    	// 为顶级菜单添加CSS类
    	if ( ! empty( $menu_code ) ) {
    		$classes[] = 'zm-menu-code';
    	}
    	// 为子菜单添加CSS类
    	if ( ! empty( $menu_shortcode ) ) {
    		$classes[] = 'zm-menu-shortcode';
    	}
 
    	return $classes;
    }
    add_filter( 'nav_menu_css_class', 'zm_menu_custom_add_class', 10, 2 );

上述,只是基本代码,并加了简单的注释,还需要编写短代码及相应的样式。

举一反三,能添加短代码,当然也能添加更多的自定义选项设置。具体效果可以参阅我主题的超级菜单。如果不想折腾代码可以安装相似功能的插件:WP Menu Custom Fields

不过用插件,最后也需要折腾代码,因为在原菜单中强行加入自定义内容,不重写样式是肯定不行的。

WordPress 二级子目录怎么设置伪静态

时间煮雨阅读(566)

宝塔伪静态中,我们选择自定义规则,把下面代码复制进去,并修改二级目录名称即可。

location /二级目录名称/ {
index index.HTML index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /二级目录名称/index.php;
}
}

本文由 云模板 作者:PetitQ 发表,转载请注明来源!

请一秒记住我们的网址:www.xinfangs.com !

去投稿去留言