分類
网站

Ten plugins and ten themes for WordPress

Here is a collection of plugins and themes from Chapter 16: The Part of Tens of the book WordPress for dummies by Lisa Sabin-Wilson.

Plugins

Custom Post Type UI

For custom post types and taxonomy.

Jetpack

A suit of plugins provided by wordpress.com.

Limit Login Attempts Reloaded

Limit Login Attempts.

Cookie Notice for GDPR & CCPA

Cookie Notice for GDPR & CCPA

Yoast SEO

Search engine optimization

BackupBuddy

For backing up and transfering website. Price strats from $80.

WP Super Cache

Create static HTML files from your dynamic WordPress content.

WooCommerce

Selling product or service on your website.

Google XML Sitemap

Create a Google-compliant XML site map of your entire site and submit it to major search engines.

Sucuri Security

Scan for malware, spam, blacklisting and other security issues hidden inside your code files.

Themes

Hybrid Core

Highly customizable parent theme. It's a WordPress Framework now.

Hestia

One-page theme built for use on a small-business website.

Responsive

Nine templates built on a fluid grid system as well as webmaster toos, logo management and multilingual support.

Ashe

Suit for personal website, lifestyle blog, bakery, travel agency.Support WooCommerce.

Prefer Blog

Simple blog with built-in Auther and Contact Us block.

BlackBird

Use your own logo, analytics code, customize featured text with an easy-to-use widget, post thumbnails, header image.

Storefront

For store with WooCommerce support, custom widgets and sidebars.

Sinatra

Good for general websites like restaurants, bakeries tech startups and blog.

Nisarg

A nice clean blog theme.

Optics

A minimalist theme featuring a grid layout. Clean and Simple.

分類
网站

WordPress 使用 OTP 增強站點安全性

一次性密碼 (One-time password)又稱動態密碼或單次有效密碼,是指計算機系統或其他數位裝置上只能使用一次的密碼,有效期為只有一次登入會話或交易。OTP 避免了一些與傳統基於密碼認證相關聯的缺點;一些實作還納入了雙因素認證,確保單次有效密碼需要存取一個人有的某件事物以及一個人知道的某件事物。——維基百科

本站使用的開源 OTP 插件是 WP-OTP。安裝啟用後在「使用者」>「個人資料」頁面,會有二維碼出現,用自己喜歡的 OTP 客戶端掃描後輸入生成的密碼就開啟了網站的 OTP 登錄。

我使用的 OTP 軟件是開源的 andOTP。安裝後會提示給 andOTP 客戶端自己設置個密碼,以保護動態密碼的安全。設置好後點擊主界面右下角的「+」,掃描 WordPress 個人資料頁的二維碼,將出現的數字填入 WordPress 後台就完成了所有的設置。

平常使用的場景是:打開 WordPress 的登錄頁,輸入賬號密碼。打開手機上的 andOTP 查看當前的動態密碼( 6 位數字)。將動態密碼也輸入登錄頁,完成登錄。

分類
网站

wordpress站點多域名

首先DNS要指向wordpress所在IP,然後配置虛擬主機,我是複製了一份conf,修改server_name為新增加的域名如blog.newdomin.com,其他不變。然後重啟nginx就可以用兩個域名訪問同一個網站了。

如果想把鏈接中的域名也換了,則需要在wp-config.php中增加兩行:

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
分類
网站

WordPress與Facebook常用代碼

在文章模板中使用jquery調用facebook總share數,用到jquery解析facebook的json數據:

<script>jQuery(document).ready(function($){
  $.getJSON("https://graph.facebook.com/?id=<?php the_permalink(); ?>", function(data){
    $('#fbCount').text(data.shares);
  });
});
</script>

關閉標籤頁的提醒彈窗(火狐下無效,Chrome下可以):

$(window).bind("beforeunload",function(event) {
    return "Don\'t forget to Like us!";
  });

給post中所有圖片註冊一次性onclick事件:

jQuery(".entry-content img").one("click",function() {fbs_click2();});

自定義按鈕實現點擊後彈出facebook分享彈框

<!--按鈕圖片,圖片採用鏈接背景的方式-->
<a onclick="javascript:fbs_click1();" href="javascript:void(0);" style="background: rgba(0, 0, 0, 0) url('https://ft.wupo.info/wp-content/uploads/2015/11/btn-fblogin.png') no-repeat scroll left center;border-radius: 5px;
color: #fff;display: inline-block;font-size: 1.3em;height: 45px;line-height: 45px;padding: 0 0 0 45px;text-align: left;">分享到FB</a>
<!--彈框js代碼-->
<script>
function fbs_click1() { u = "http://yourdomin.com/yourpage"; t = document.title; window.open('https://www.facebook.com/sharer.php?u=' + encodeURIComponent(u) + '&t=' + encodeURIComponent(t), 'sharer', 'toolbar=0,status=0,width=626,height=600'); return false; };
</script>
<!--在body關閉標籤前引入facebook代碼-->
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5&appId=1111828692192135";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

本文更新於 2015/11/28。

分類
网站

wordpress建立企業站常用函數和插件

1,常用主題函數

//移除后台默认小控件
add_action('wp_before_admin_bar_render', 'my_admin_bar_remove', 0);

function my_admin_bar_remove()
{
    global $wp_admin_bar;
    global $wp_meta_boxes;
    
    /* Remove their stuff */
    $wp_admin_bar->remove_menu('wp-logo');
    // 以下这一行代码将删除 "快速发布" 模块
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
    // 以下这一行代码将删除 "引入链接" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
    // 以下这一行代码将删除 "插件" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
    // 以下这一行代码将删除 "近期评论" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
    // 以下这一行代码将删除 "近期草稿" 模块
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
    // 以下这一行代码将删除 "WordPress 开发日志" 模块
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
    // 以下这一行代码将删除 "其它 WordPress 新闻" 模块
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
    // 以下这一行代码将删除 "概况" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
    // 以下这一行代码将删除 "活动" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);
}


// 添加后台小控件
add_action('wp_dashboard_setup', 'my_add_dashboard_widgets');

function my_add_dashboard_widgets()
{
    wp_add_dashboard_widget('my_dashboard_widget', // Widget slug.
'welcome', // Title.
'dashboard_widget_function') // Display function.
;
}

//Create the function to output the contents of our Dashboard Widget.
function dashboard_widget_function()
{
    echo "欢迎!<br/>请点击左侧菜单进行相应操作。";
}

// 去除后台标题中的“—— WordPress”
add_filter('admin_title', 'wpdx_custom_admin_title', 10, 2);

function wpdx_custom_admin_title($admin_title, $title)
{
    return $title . ' &lsaquo; ' . get_bloginfo('name');
}


// 去除后台的谷歌自体
add_action('init', 'remove_open_sans_from_wp_core');

function remove_open_sans_from_wp_core()
{
    wp_deregister_style('open-sans');
    wp_register_style('open-sans', false);
    wp_enqueue_style('open-sans', '');
}

// 自定义WordPress后台底部信息
add_filter('admin_footer_text', 'left_admin_footer_text');

function left_admin_footer_text($text)
{
    // 修改左侧信息
    $text = '感谢使用OKMILK销量查询系统';
    return $text;
}
add_filter('update_footer', 'right_admin_footer_text', 11);

function right_admin_footer_text($text)
{
    // 修改右侧信息
    $text = "4.6.1版本";
    return $text;
}

// 去除右上角帮助
add_filter('contextual_help', 'wpse50723_remove_help', 999, 3);

function wpse50723_remove_help($old_help, $screen_id, $screen)
{
    $screen->remove_help_tabs();
    return $old_help;
}

// 去除一般用户升级提醒
if (! current_user_can('manage_options'))
{
    // Disable Theme Updates
    remove_action('load-update-core.php', 'wp_update_themes');
    add_filter('pre_site_transient_update_themes', create_function('$a', "return null;"));
    wp_clear_scheduled_hook('wp_update_themes');
    
    // Disable Plugin Updates
    remove_action('load-update-core.php', 'wp_update_plugins');
    add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;"));
    wp_clear_scheduled_hook('wp_update_plugins');
    
    // Diasable Core Updates
    add_filter('pre_site_transient_update_core', create_function('$a', "return null;"));
    wp_clear_scheduled_hook('wp_version_check' );
}

2,插件

查看當前模板文件:安裝插件Show Current Template

修改登陸頁logo:安裝插件Custom Login Logo

去除wp頭部版本號:安裝插件Remove WP version and shortlink

维护模式:安裝插件Maintenance Mode

分類
說說

WordPress小版本自动升级

昨天收到邮件说这个网站的WordPress已经自动升级了!之前是3.8.1现在自动升级到了3.8.2。我有修改一些系统文件,但还好没有受到影响。查了下WordPress默认会自动进行小版本自动升级,例如从3.8.1到3.8.2这种。如果非要关闭,可以在wp-config.php中加入如下代码即可(未测试)。

define( 'AUTOMATIC_UPDATER_DISABLED', true );
分類
网站

修改WordPress登录页

wordpress-logo

WordPress3.7.1版本中,登录页的图片为wp-admin/images/wordpress-logo.png,尺寸是274×63,我只是把它替换成了wordpress-logo.webp。先用GIMP制作图片,但是其webp插件尚不能处理透明度,所以先导出png再用XnConvert转成webp就好了。传完后替换wp-admin/css/wp-admin.min.css中的wordpress-logo.png为wordpress-logo.webp即可。

当然了,更新版本后应该就要重新做一遍。