标签: wordpress

  • wordpress之WP_Query函数

    用法一、查询某一分类下的文章,代码如下:

    <?php
    $query = new WP_Query([
        'post_type' => 'product', // 文章类型是自定义类型 product 
        'posts_per_page' => 999, // 每页 999 条
        'order' => 'ASC', // 升序排序
        // 查询分类,即该自定义类型下的分类
        'tax_query' => [
            [
                // 分类的名字
                'taxonomy' => 'product_category',
                // 根据wp_terms表里的哪个字段进行查询,可以根据term_id或slug等
                'field' => 'term_id',
                // 上面字段的值
                'terms' => $sub->term_id,
            ]
        ],
    ]);
    
    if ($query->have_posts()) :
        while ($query->have_posts()) :
            $query->the_post();
    ?>
    
            <a href="<?php the_permalink() ?>"><?php the_title() ?></a>
    
    <?php
        endwhile;
    endif;
    // 使用 WP_Query 查询后,不要忘了进行重置查询,否则会影响后面代码的执行
    wp_reset_query();
    ?>
    
  • wordpress之wp_list_categories函数

    该函数用来输出一个某个分类法下的分类列表,输出的是html格式,默认是 <li>…</li>

    $term = get_term_by('slug', 'software', 'product_category');
    wp_list_categories([
        'taxonomy' => 'product_category', // 分类法
        'child_of' => $term->term_id, // 哪个分类的子分类
        'depth' => 0, 
        'hide_empty'=>false, // 如果该分类下没有文章,是否隐藏
        'title_li' => ''
    ] );
  • wordpress之the_xxx 系列的函数

    该系列函数主要用于对单篇文章使用,获取单篇文章的相关信息,常用函数如下:

    输出文章标题

    <?php the_title() ?>

    输出文章发布时间

    <?php echo get_the_date( 'Y-m-d' ); ?>

    输出文章简介,超出的部分用[…]来省略。

    <?php the_excerpt(); ?>

    输出文章的固定链接

    <?php the_permalink() ?>

    输出文章内容

    <?php the_content() ?>
  • wordpress之sanitize_text_field函数

    清理用户输入或者从数据库中获取的字符串。

    检查是否合法的 UTF-8 字符,将 < 转换成 HTML 实体,去掉所有标签,删除所有换行符,占位符,以及额外的空格,去掉八位字节。

    常用于后台meta box 保存内容时,但是使用了wp_editor就不能使用该函数进行过滤了,否则会导致生成的富文本格式不正确。

    用法:

    <?php sanitize_text_field($string); ?>

    函数所在文件:wp-includes/formatting.php

    参考:https://blog.wpjam.com/function_reference/sanitize_text_field/

  • wordpress函数之get_the_terms

    该函数用于在已知文章ID和分类法的时候调用,常用于文章详情页面。用来获取分类信息

    用法:

    /** 
    第一个参数表是当前文章的ID, 第二个参数表示所属的分类法,即taxonomy name。
    在single页面时可以直接使用 $post->ID
    **/
    $terms = get_the_terms($post->ID, 'product_category');

  • wordpress函数之get_term_by

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

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

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

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

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

  • wordpress中和category页面有关的函数

    获取当前分类的分类名称

    <?php single_cat_title() ?>

    获取当前分类的slug

    <?php
    $term = get_queried_object();
    echo $term->slug;
  • 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 ); // 文章标题
    ?>