标签归档:WordPress

wordpress函数之get_terms

该函数用来查询某一 taxonomy 下的所有分类,即wp_term_taxonomy和wp_terms表的联合查询结果。

用法如下 :

<?php  
    $terms = get_terms([
	    /* wp_term_taxonomy 表的 taxonomy 字段值
		   代码层面就是 register_taxonomy 注册的分类方法 */			
        'taxonomy' => 'product_category',
        // 如果该分类下没有文章,是否显示 
        'hide_empty' => false,
        /*该分类的上级分类,即 wp_term_taxonomy 表的 parent 字段,
         如果查询一级分类,设置为 0 即可。
         如果查询子分类,这里只需指定父分类的term_id即可
         wp_term_taxonomy 表的 parent 字段,指的是 term_id 字段 */         
        'parent' => 0,
        /* 根据哪个字段进行排序,网上找的代码这里写id就能排序,不知道这个id是哪个表的id
	       估计应该是 term_id 字段 */
        'orderby'=> 'id',
        // 升序排序
        'order'  => 'ASC'
    ]);
    foreach($terms as $term):
?>

<a href="javascript:void(0)" class=""><?php echo $term->name;  ?></a>

<?php endforeach; ?>

wordpress函数之get_term_by

该函数用来获取一个分类的信息,实际是 wp_terms 和 wp_term_taxonomy 表的联合查询

第一个参数表示根据 wp_terms 表的哪个字段查询

第二个参数表示该字段的值

第三个参数表示分类法的名称,即 wp_term_taxonomy 表的 taxonomy

$term=get_term_by('slug','software','product_category');

wordpress函数之wp_trim_words

wordpress有个wp_trim_words函数,该函数的功能是对给定的内容进行截取,可以指定截取多少个字,用法示例代码如下:

<?php
echo wp_trim_words( get_the_content(), 66 ); // 文章内容
echo wp_trim_words( get_the_excerpt(), 66 ); // 文章摘要
echo wp_trim_words( get_the_title(), 30 ); // 文章标题
?>

WordPress把本地项目迁移到服务器时,需要更新数据库相关链接

更新的SQL代码如下:

UPDATE wp_posts SET post_content = REPLACE( post_content, 'http://localhost', 'https://www.jsdd.net'); 

UPDATE wp_postmeta SET meta_value = REPLACE( meta_value, 'http://localhost', 'https://www.jsdd.net'); 

UPDATE wp_options SET  option_value = 'https://www.jsdd.net' WHERE option_name = 'siteurl' or option_name = 'home';

其中,https://www.jsdd.net 表示线上网址。如果其它表中需要替换,新增相应的SQL语句即可。

更改用户资料中的网址:

update wp_users set user_url='https://www.jsdd.net' where user_login='admin';

更改用户资料中的邮箱:

update wp_options set option_value='example@gmail.com' where option_name='admin_email';
update wp_users set user_email='example@gmail.com' where user_login='admin';

nginx反代iis 支持泛域名,支持WordPress多站点

nginx配置:

upstream qd-aliyun-8006 {
    server x.x.x.x:8006;
}

server {
    listen 80;
    server_name softc.cc *.softc.cc;

    location / {
        proxy_pass http://qd-aliyun-8006;
        proxy_redirect default;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-Port $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Port  $server_port;
        proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
    }
}

注意是要有 proxy_set_header Host $host; 这一行。

WordPress开启多站点

wordpress 有一个多站点模式,开启这个模式后,可以在一个后台管理多个独立的网站,省时方便。

开启wordpress多站点模式非常简单,按下面的步骤操作即可:

打开config.php,在 /* 好了!请不要再继续编辑。请保存本文件。使用愉快! */ 这句话的上一行,添加如下代码:

define('WP_ALLOW_MULTISITE', true);

 保存后,即可开启wordpress多站点模式。

WordPress 主题开发基础代码

以下代码添加到functions.php:

// 允许自动更新小版本,但禁止大版本更新
add_filter( 'allow_major_auto_update', '__return_false' );
add_filter( 'allow_minor_auto_update', '__return_true' );

// 禁止后台更新页面显示新版本更新提示
add_filter( 'site_transient_update_core', function( $value ) {
    if ( is_object( $value ) && isset( $value->updates ) ) {
        foreach ( $value->updates as $key => $update ) {
            // 移除新版本更新提示
            if ( version_compare( $update->current, get_bloginfo( 'version' ), '>' ) ) {
                unset( $value->updates[ $key ] );
            }
        }
    }
    return $value;
} );

// 移除站点健康菜单
add_action( 'admin_menu', 'remove_site_health_submenu', 999 );
function remove_site_health_submenu() {
    $page = remove_submenu_page( 'tools.php', 'site-health.php' );
}

// 禁用站点健康功能
add_filter('health_check_enabled', '__return_false');

// 移除仪表盘中的小部件
add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
function remove_dashboard_widgets() {
    remove_meta_box('dashboard_site_health', 'dashboard', 'normal'); // 站点健康
    remove_meta_box('dashboard_activity', 'dashboard', 'normal'); // 活动
    remove_meta_box('dashboard_primary', 'dashboard', 'side'); // 新闻
    // remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // 保留快速草稿
    remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // 概览
    remove_action('welcome_panel', 'wp_welcome_panel');// 欢迎小部件
}

// Hide dashboard update notifications for all users
function kinsta_hide_update_nag() {
    remove_action( 'admin_notices', 'update_nag', 3 );
}
add_action('admin_menu','kinsta_hide_update_nag');

//禁用 emoji(表情符号)功能
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

//移除后台左上角WP图标
function remove_wp_logo($wp_admin_bar) {
    $wp_admin_bar->remove_node('wp-logo');
}
add_action('admin_bar_menu', 'remove_wp_logo', 999);

// 让wp_head()函数支持显示title标签
add_theme_support( 'title-tag' );

移除wordpress后台相关的功能

// 移除站点健康菜单
add_action( 'admin_menu', 'remove_site_health_submenu', 999 );
function remove_site_health_submenu() {
    $page = remove_submenu_page( 'tools.php', 'site-health.php' );
}

// 禁用站点健康功能
add_filter('health_check_enabled', '__return_false');

// 移除仪表盘中的小部件
add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
function remove_dashboard_widgets() {
    remove_meta_box('dashboard_site_health', 'dashboard', 'normal'); // 站点健康
    remove_meta_box('dashboard_activity', 'dashboard', 'normal'); // 活动
    remove_meta_box('dashboard_primary', 'dashboard', 'side'); // 新闻
    // remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // 保留快速草稿
    remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // 概览
    remove_action('welcome_panel', 'wp_welcome_panel');// 欢迎小部件
}