标签: WordPress主题开发

  • WordPress 主题插件 如何 去除默认POST文章类型的 标签 编辑器 图文教程

    WordPress 主题插件 如何 去除默认POST文章类型的 标签 编辑器 图文教程

    最近老季在开发一个WordPress主题,需要删除默认文章中的编辑器。这里需要在 functions.php 中修改才能实现,我们这里记录一下代码段

    /* 默认文章去除编辑器及标签 */
    add_action( 'init', function() {
        remove_post_type_support( 'post', 'editor' );//去除 默认编辑器
        unregister_taxonomy_for_object_type( 'post_tag', 'post' );//去除 标签
    }, 99);
  • WordPress主题插件开发 自定义字段 排序

    WordPress主题插件开发 自定义字段 排序

    实际主题插件开发中,我们可能需要用到自定义字段custom fields的搜索,并且用来排序,而且是多个。我们这里记录一下代码

        $args = array(
            'post_type' =>  DEBBING_TYPE_SLUG,
            'meta_query'    => array(
                array(
                    'relation' => 'AND',
                    'status_clause' => array(
                        'key'       => '_debbing_status',
                        'type' => 'NUMERIC', 
                    ),
                    'order_clause' => array(
                        'key'       => '_debbing_order',
                        'type' => 'NUMERIC',
                    ),
                )
                ),
            'orderby' => array(
                'status_clause'       => 'DESC',
                'order_clause'     => 'DESC',
            )
        );
        query_posts($args);
  • WordPress官方主题twentytwelve首页如何显示文章摘要  图文教程

    WordPress官方主题twentytwelve首页如何显示文章摘要 图文教程

    方法:网站后台->外观->编辑->找到content.php文件

    或者ftp下载修改:路径:wp-content/themes/twentytwelve/

    找到这一句:

    <?php if ( is_search()) : // Only display excerpts for search. ?>

    然后修改一下:

    <?php if ( is_search() || is_category() || is_archive() || is_home()) : // Only display excerpts for search. ?>

    这样,首页和其他页面就可以显示摘要了

  • WordPress自动提交链接到百度

    WordPress自动提交链接到百度

    将网站新内容提交到百度,有利于网站SEO。百度搜索资源平台提供了主动推送链接的接口,可以免去我们手动提交链接的麻烦。

    尽管曾有插件可实现这一功能,但总所周知,给WordPress添加过多插件并非一个明智的选择。这种能用几行代码实现的单一功能,咱们还是用代码实现吧。

    我根据百度搜索资源平台提供的主动推送接口示例,编写了WordPress的主动推送代码,将下面的代码添加到你正在使用的主题的function.php文件最后、或者插件代码中添加,并将代码中的example_token替换成你在百度搜索资源平台获取的URL和Token即可。

    // Push To Baidu
    function push_to_baidu_zz($post_id, $post, $update){
        $site_url = site_url();
        $token = 'xxxxxxxxx'; //这里需要自行替换
        if($post->post_status != 'publish'){
            return;
        }
        $baidu_zz_api_url   = 'http://data.zz.baidu.com/urls?site='.$site_url.'&token='.$token;
        $response   = wp_remote_post($baidu_zz_api_url, array(
            'headers'   => array('Accept-Encoding'=>'','Content-Type'=>'text/plain'),
            'sslverify' => false,
            'blocking'  => false,
            'body'      => get_permalink($post_id)
        ));
    }
    add_action('save_post', 'push_to_baidu_zz', 10, 3);

    代码逻辑很简单。在保存文章时,判断文章状态是否为发布,如果是文章状态是发布,那么就用Post提交文章链接到百度的接口。

  • wordpress 自定义字段查询 meta_query 参数中使用like和in来进行查询

    wordpress 自定义字段查询 meta_query 参数中使用like和in来进行查询

    有时候我们在wordress开发中可能需要根据自定义字段来进行一次查询,然后得出结果。一般情况下,我们使用等号来进行相等条件的查询,但我们也可以使用like和in来进行查询。下面请看代码示例。

    使用IN的代码

    $user_ids = array(60, 61, 62, 63);
     $args = array(
       'post_type' => 'post',
       'meta_key' => 'likes',
       'post_status'       => 'publish',
       'posts_per_page'    => -1,
       'orderby'           => 'rand',       
       'order' => 'ASC',
       'meta_query' => array(
           array(
               'key' => 'likes',
               'value' => $user_ids, //array
               'compare' => 'IN',
           )
       )
     );
     $query = new WP_Query($args);
    这里使用了’meta_key’ => ‘likes’对结果进行排序,意思是结果按照自定义的likes字段来进行排序。然后使用 ‘meta_query’来做自定义值的条件查询,likes值在$user_ids的结果都输出来。

    或者

     $args = array(
        'post_type'         => 'post',
        'post_status'       => 'publish',
        'posts_per_page'    => -1,
        'orderby'           => 'rand',
        'meta_query'        => array(
     
            array(
                'key'       => 'likes',
                'value'     => $user_ids,
                'compare'   => 'IN'
            )
        )
    );
    $posts = get_posts($args);

    使用LIKE的代码

        $args = array(
        'meta_query' => array(
            array(
                'key' => 'my_meta_key',
                'value' => serialize(strval($my_id)),
                'compare' => 'LIKE'
            )
        )
    );
    $posts = get_posts( $args );

    这个是对数组进行了序列化。

  • WordPress 主题/插件开发 自定义文章分类 筛选功能 图文教程

    WordPress 主题/插件开发 自定义文章分类 筛选功能 图文教程

    前面我们介绍了WordPress开发注册自定义文章的一些方法

    下面我们教大家如何在WordPress后台edit.php的自定义文章列表中筛选自定义文章的分类,代码段如下:

    function sites_posts_taxonomy_filter() {
    	global $typenow; 
    	if( $typenow == 'sites' ){ //指定post_type类型
    		$taxonomy_names = array('favorites', );//指定分类taxonomy
    		foreach ($taxonomy_names as $single_taxonomy) {
    			$current_taxonomy = isset( $_GET[$single_taxonomy] ) ? $_GET[$single_taxonomy] : '';
    			$taxonomy_object = get_taxonomy( $single_taxonomy );
    			$taxonomy_name = strtolower( $taxonomy_object->labels->name );
    			$taxonomy_terms = get_terms( $single_taxonomy );
    			if(count($taxonomy_terms) > 0) {
    				echo "<select name='$single_taxonomy' id='$single_taxonomy' class='postform'>";
    				echo "<option value=''>All $taxonomy_name</option>";
    				foreach ($taxonomy_terms as $single_term) {
    					echo '<option value='. $single_term->slug, $current_taxonomy == $single_term->slug ? ' selected="selected"' : '','>' . $single_term->name .' (' . $single_term->count .')</option>'; 
    				}
    				echo "</select>";
    			}
    		}
    	}
    }
     
    add_action( 'restrict_manage_posts', 'sites_posts_taxonomy_filter' );
WeChat
↑