前言

最近又写了个网站,也是基于wordpress,LEE周刊官网:www.leeweekly.com。这个网站和轩枫阁的部分功能有所不同,部分功能困扰了挺久,通过Google搜索到了各种解决方案,记录成文备忘。

LEE周刊新版PC官网设计开发总结:http://t.cn/RyzrUD4

functions.php

下面根据需求,对各种能实现进行简单介绍。

先对functions.php文件进行介绍,通过代码实现各功能。

1. widgets sidebar 侧边栏小工具

wordpress二次开发技巧-functions.php篇
/** widgets sidebar 侧边栏小工具*/
if( function_exists('register_sidebar'<span class="crayon-sy">) ) {register_sidebar(array('name' <span class="crayon-o">=> 'First_sidebar'<span class="crayon-sy">,'before_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,'after_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,'before_title' <span class="crayon-o">=> '<h4>'<span class="crayon-sy">,'after_title' <span class="crayon-o">=> '</h4>'));register_sidebar(array('name' <span class="crayon-o">=> 'Second_sidebar'<span class="crayon-sy">,'before_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,'after_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,'before_title' <span class="crayon-o">=> '<h4>'<span class="crayon-sy">,'after_title' <span class="crayon-o">=> '</h4>'));register_sidebar(array('name' <span class="crayon-o">=> 'Third_sidebar'<span class="crayon-sy">,'before_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,'after_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,'before_title' <span class="crayon-o">=> '<h4>'<span class="crayon-sy">,'after_title' <span class="crayon-o">=> '</h4>'));register_sidebar(array('name' <span class="crayon-o">=> 'Fourth_sidebar'<span class="crayon-sy">,'before_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,'after_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,'before_title' <span class="crayon-o">=> '<h4>'<span class="crayon-sy">,'after_title' <span class="crayon-o">=> '</h4>'));
}register_nav_menus(array("primary" => "Primary Navigation"));

2. 后台支持自定义菜单

wordpress二次开发技巧-functions.php篇
/*nav  后台自定义菜单*/
if(function_exists('register_nav_menus'<span class="crayon-sy">)){register_nav_menus(array('header-menu' <span class="crayon-o">=> __( '导航自定义菜单' <span class="crayon-sy">),'footer-menu' <span class="crayon-o">=> __( '页角自定义菜单' <span class="crayon-sy">),'sider-menu' <span class="crayon-o">=> __('侧边栏菜单'<span class="crayon-sy">),'primary' <span class="crayon-o">=> __( 'Primary Navigation'<span class="crayon-sy">, 'lee' <span class="crayon-sy">),));
}

输出菜单,在如header.php插入显示菜单的代码

<?php wp_nav_menu( array( 'container' <span class="crayon-o">=> '' <span class="crayon-sy">) ); ?>

3. 面包屑导航

// 面包屑导航注册代码
function wheatv_breadcrumbs() {$delimiter = '<i>></i>'<span class="crayon-sy">;$name = '首页'<span class="crayon-sy">; //text for the 'Home' link$currentBefore = ''<span class="crayon-sy">;$currentAfter = ''<span class="crayon-sy">;if ( !is_home() && !is_front_page() || is_paged() ) {echo ''<span class="crayon-sy">;global $post;// $home = get_bloginfo('url');$home = get_option('home'<span class="crayon-sy">);echo '<a href="'<span class="crayon-sy">.$home.'" >'<span class="crayon-sy">. $name . ' </a>' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">;if ( is_category() ) {global $wp_query;$cat_obj = $wp_query->get_queried_object();$thisCat = $cat_obj->term_id;$thisCat = get_category($thisCat);$parentCat = get_category($thisCat->parent);if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">));echo $currentBefore . ''<span class="crayon-sy">;single_cat_title();echo '' <span class="crayon-sy">. $currentAfter;} elseif ( is_day() ) {echo '' <span class="crayon-sy">. get_the_time('Y'<span class="crayon-sy">) . ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">;echo '' <span class="crayon-sy">. get_the_time('F'<span class="crayon-sy">) . ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">;echo $currentBefore . get_the_time('d'<span class="crayon-sy">) . $currentAfter;} elseif ( is_month() ) {echo '' <span class="crayon-sy">. get_the_time('Y'<span class="crayon-sy">) . ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">;echo $currentBefore . get_the_time('F'<span class="crayon-sy">) . $currentAfter;} elseif ( is_year() ) {echo $currentBefore . get_the_time('Y'<span class="crayon-sy">) . $currentAfter;} elseif ( is_single() ) {$cat = get_the_category(); $cat = $cat[0];echo get_category_parents($cat, TRUE, ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">);echo $currentBefore;the_title();echo $currentAfter;} elseif ( is_page() && !$post->post_parent ) {echo $currentBefore;the_title();echo $currentAfter;} elseif ( is_page() && $post->post_parent ) {$parent_id = $post->post_parent;$breadcrumbs = array();while ($parent_id) {$page = get_page($parent_id);$breadcrumbs[] = '' <span class="crayon-sy">. get_the_title($page->ID) . ''<span class="crayon-sy">;$parent_id = $page->post_parent;}$breadcrumbs = array_reverse($breadcrumbs);foreach ($breadcrumbs as $crumb) echo $crumb . ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">;echo $currentBefore;the_title();echo $currentAfter;} elseif ( is_search() ) {echo $currentBefore . '搜索结果' <span class="crayon-sy">. get_search_query() . '' <span class="crayon-sy">. $currentAfter;} elseif ( is_tag() ) {echo $currentBefore . '搜索标签: '<span class="crayon-sy">;single_tag_title();echo '' <span class="crayon-sy">. $currentAfter;} elseif ( is_author() ) {global $author;$userdata = get_userdata($author);echo $currentBefore . 'Articles posted by ' <span class="crayon-sy">. $userdata->display_name . $currentAfter;} elseif ( is_404() ) {echo $currentBefore . 'Error 404' <span class="crayon-sy">. $currentAfter;}if ( get_query_var('paged'<span class="crayon-sy">) ) {if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' ('<span class="crayon-sy">;echo __('第'<span class="crayon-sy">) . '' <span class="crayon-sy">. get_query_var('paged'<span class="crayon-sy">) . '页'<span class="crayon-sy">;if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')'<span class="crayon-sy">;}echo ''<span class="crayon-sy">;}
}

显示面包屑导航(category.php或single.php等)

<?php wheatv_breadcrumbs(); ?>

4.  文章访问量(点击数)

wordpress二次开发技巧-functions.php篇
//文章点击数
function getPostViews($postID){$count_key = 'post_views_count'<span class="crayon-sy">;$count = get_post_meta($postID, $count_key, true);if($count==''<span class="crayon-sy">){delete_post_meta($postID, $count_key);add_post_meta($postID, $count_key, '0'<span class="crayon-sy">);return "0";}return $count;
}
function setPostViews($postID) {$count_key = 'post_views_count'<span class="crayon-sy">;$count = get_post_meta($postID, $count_key, true);if($count==''<span class="crayon-sy">){$count = 0;delete_post_meta($postID, $count_key);add_post_meta($postID, $count_key, '0'<span class="crayon-sy">);}else{$count++;update_post_meta($postID, $count_key, $count);}
}

显示点击量(如category.php或single.php)

<?php echo getPostViews(get_the_ID()); ?>

5. 文章中所有链接新窗口中打开

//为文章中所有链接添加target="_blank"属性
function autoblank($content) {$content = preg_replace("/<a(.*?)>/", "<a$1 target="_blank">", $content);return $content;
}
add_filter('the_content'<span class="crayon-sy">, 'autoblank'<span class="crayon-sy">);

6. 清除wp自带无用头部信息

//清除头部信息
//remove_action( 'wp_head', 'wp_enqueue_scripts', 1 );
remove_action( 'wp_head'<span class="crayon-sy">, 'feed_links'<span class="crayon-sy">, 2 );
remove_action( 'wp_head'<span class="crayon-sy">, 'feed_links_extra'<span class="crayon-sy">, 3 );
remove_action( 'wp_head'<span class="crayon-sy">, 'rsd_link' <span class="crayon-sy">);
remove_action( 'wp_head'<span class="crayon-sy">, 'wlwmanifest_link' <span class="crayon-sy">);
remove_action( 'wp_head'<span class="crayon-sy">, 'index_rel_link' <span class="crayon-sy">);
remove_action( 'wp_head'<span class="crayon-sy">, 'parent_post_rel_link'<span class="crayon-sy">, 10, 0 );
remove_action( 'wp_head'<span class="crayon-sy">, 'start_post_rel_link'<span class="crayon-sy">, 10, 0 );
remove_action( 'wp_head'<span class="crayon-sy">, 'adjacent_posts_rel_link_wp_head'<span class="crayon-sy">, 10, 0 );
//remove_action( 'wp_head', 'locale_stylesheet' );
remove_action( 'publish_future_post'<span class="crayon-sy">, 'check_and_publish_future_post'<span class="crayon-sy">, 10, 1 );
//remove_action( 'wp_head', 'noindex', 1 );
//remove_action( 'wp_head', 'wp_print_styles', 8 );
//remove_action( 'wp_head', 'wp_print_head_scripts', 9 );
remove_action( 'wp_head'<span class="crayon-sy">, 'wp_generator' <span class="crayon-sy">);
//remove_action( 'wp_head', 'rel_canonical' );
remove_action( 'wp_footer'<span class="crayon-sy">, 'wp_print_footer_scripts' <span class="crayon-sy">);
remove_action( 'wp_head'<span class="crayon-sy">, 'wp_shortlink_wp_head'<span class="crayon-sy">, 10, 0 );
remove_action( 'template_redirect'<span class="crayon-sy">, 'wp_shortlink_header'<span class="crayon-sy">, 11, 0 );
add_action('widgets_init'<span class="crayon-sy">, 'my_remove_recent_comments_style'<span class="crayon-sy">);
function my_remove_recent_comments_style() {
global $wp_widget_factory;
remove_action('wp_head'<span class="crayon-sy">, array($wp_widget_factory->widgets['WP_Widget_Recent_Comments'<span class="crayon-sy">], 'recent_comments_style'<span class="crayon-sy">));
}

7. 自动保存和文章修订功能

wordpress二次开发技巧-functions.php篇
//自动保存和文章修订功能
define('AUTOSAVE_INTERVAL'<span class="crayon-sy">, 120 );  // 设置自动保存间隔,单位是秒,默认60
define('WP_POST_REVISIONS'<span class="crayon-sy">, false); // 如果不禁用自动修订,最多允许保存的版本数,3表示最多保存3个修订版

8. 彩色静态标签云

wordpress二次开发技巧-functions.php篇
// 彩色静态标签云 Color Tag Cloud
function colorCloud($text) {$text = preg_replace_callback('|<a (.+?)>|i'<span class="crayon-sy">, 'colorCloudCallback'<span class="crayon-sy">, $text);return $text;
}
function colorCloudCallback($matches) {$text = $matches[1];$color = dechex(rand(0,16777215));$pattern = '/style=('|")(.*)('|")/i'<span class="crayon-sy">;$text = preg_replace($pattern, "style="color:#{$color};$2;"", $text);return "<a $text>";
}
add_filter('wp_tag_cloud'<span class="crayon-sy">, 'colorCloud'<span class="crayon-sy">, 1);

输出标签

<?php wp_tag_cloud('smallest=10&largest=14&number=32&order=RAND'<span class="crayon-sy">) ?>

9. 搜索结果关键词高亮显示

具体实现,再另写文章介绍,后续可通过搜索找到。

wordpress二次开发技巧-functions.php篇
// 搜索结果关键词高亮显示
function lee_set_query() {$query  = attribute_escape(get_search_query());if(strlen($query) > 0){echo '<script type="text/javascript">var lee_query  = "'.$query.'";</script>'<span class="crayon-sy">;}
}
function lee_init_jquery() {
wp_enqueue_script('jquery'<span class="crayon-sy">);
}
add_action('init'<span class="crayon-sy">, 'lee_init_jquery'<span class="crayon-sy">);
add_action('wp_print_scripts'<span class="crayon-sy">, 'lee_set_query'<span class="crayon-sy">);

10. 自定义登录界面

在不更改html的情况下,可通过引入样式文件,自定义登录界面。

wordpress二次开发技巧-functions.php篇
// 自定义登录界面
function custom_login(){echo '<link rel="stylesheet" type="text/css" href="' <span class="crayon-sy">. get_bloginfo('template_directory'<span class="crayon-sy">) . '/css/login.css" />'<span class="crayon-sy">;
}
add_action('login_head'<span class="crayon-sy">, 'custom_login'<span class="crayon-sy">);function login_headerurl($url) {return get_bloginfo('url'<span class="crayon-sy">);
}
add_filter('login_headerurl'<span class="crayon-sy">, 'login_headerurl'<span class="crayon-sy">);function login_headertitle($title){return __('轩枫阁'<span class="crayon-sy">);
}
add_filter('login_headertitle'<span class="crayon-sy">, 'login_headertitle'<span class="crayon-sy">);

11. 获得当前文章的位置

wordpress二次开发技巧-functions.php篇
wordpress二次开发技巧-functions.php篇
// 当前文章
function num_Pcurrent_post() {global $wpdb;$postid = get_the_ID();//获取当前文章的ID$getpost = get_post($postid);$daysago = $getpost->post_date;//获取当前文章的发布时间$today = gmdate('Y-m-d H:i:s'<span class="crayon-sy">, time() + 3600 * 8);//获取当前服务器的时间$count_posts = wp_count_posts();$num_all_posts = $count_posts->publish;//总的文章数量$result = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_date BETWEEN '$daysago' AND '$today' AND post_status='publish' AND post_type='post' ORDER BY post_date DESC ");foreach ($result as $Item) {$post_ID[] = $Item->ID;}$num_current_post = count($post_ID)-1;//当前文章发布以前的文章数量总数$output .= $num_current_post.'/'<span class="crayon-sy">.$num_all_posts;echo $output;
}
function num_Ncurrent_post() {global $wpdb;$postid = get_the_ID();//获取当前文章的ID$getpost = get_post($postid);$daysago = $getpost->post_date;//获取当前文章的发布时间$today = gmdate('Y-m-d H:i:s'<span class="crayon-sy">, time() + 3600 * 8);//获取当前服务器的时间$count_posts = wp_count_posts();$num_all_posts = $count_posts->publish;//总的文章数量$result = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_date BETWEEN '$daysago' AND '$today' AND post_status='publish' AND post_type='post' ORDER BY post_date DESC ");foreach ($result as $Item) {$post_ID[] = $Item->ID;}$num_current_post = count($post_ID)+1;//当前文章发布以前的文章数量总数$output .= $num_current_post.'/'<span class="crayon-sy">.$num_all_posts;echo $output;
}

显示上下篇及位置,在single.php

<?php if (get_next_post()) { echo  next_post_link('%link'<span class="crayon-sy">,__( '<span title="上一篇:%title">上一篇</span>'<span class="crayon-sy">, 'lee' <span class="crayon-sy">),$in_same_cat = false,$excluded_categories = '11'<span class="crayon-sy">);  } else { echo '<a class="arc_nav_new">已最新</a>'<span class="crayon-sy">;  }?>
<?php num_Pcurrent_post(); ?><?php num_Ncurrent_post(); ?>
<?php if (get_previous_post()) { echo  previous_post_link('%link'<span class="crayon-sy">,__( '<span title="下一篇:%title">下一篇</span>'<span class="crayon-sy">, 'lee' <span class="crayon-sy">),$in_same_cat = false,$excluded_categories = '11'<span class="crayon-sy">);  } else { echo '<a class="arc_nav_new">已最后</a>'<span class="crayon-sy">;  }?>

12. 热门标签ajax加载

点击换一换

wordpress二次开发技巧-functions.php篇
// 热门标签ajax部分
function tagLoad(){if( isset($_GET['action'<span class="crayon-sy">])){if($_GET['action'<span class="crayon-sy">] == 'tag'<span class="crayon-h">  ){echo wp_tag_cloud('smallest=10&largest=14&number=32&order=RAND'<span class="crayon-sy">);die;}}}
add_action('init'<span class="crayon-sy">, 'tagLoad'<span class="crayon-sy">);

HTML部分

<a class="tag_change" href="<?php echo get_option('home'<span class="crayon-sy">)."/?action=tag"; ?>">换一换</a>

使用JS实现点击交互

// 标签云ajax$(".tag_change").click(function(){$.ajax({url: $(this).attr("href"),type: 'get'<span class="crayon-sy">,beforeSend: function() {// 可以显示loading},error: function(error) {// 错误处理},success: function(data) {// 成功返回数据,先清空初始标签,装载新数据淡入$(".tag_content").empty().append($(data).fadeIn(200));}});return false;});

13. 外链加上nofollow

防止引入的网站有问题,被降权

// 文章外部链接加上nofollow
add_filter( 'the_content', 'cn_nf_url_parse');
function cn_nf_url_parse( $content ) {$regexp = "<as[^>]*href=("??)([^" >]*?)1[^>]*>";if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {if( !empty($matches) ) {$srcUrl = get_option('siteurl');for ($i=0; $i < count($matches); $i++){$tag = $matches[$i][0];$tag2 = $matches[$i][0];$url = $matches[$i][0];$noFollow = '';$pattern = '/targets*=s*"s*_blanks*"/';preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);if( count($match) < 1 )$noFollow .= ' target="_blank" ';$pattern = '/rels*=s*"s*[n|d]ofollows*"/';preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);if( count($match) < 1 )$noFollow .= ' rel="nofollow" ';$pos = strpos($url,$srcUrl);if ($pos === false) {$tag = rtrim ($tag,'>');$tag .= $noFollow.'>';$content = str_replace($tag2,$tag,$content);}}}}$content = str_replace(']]>', ']]>', $content);return $content;}

14. 图片懒加载lazyload3. 外链加上nofollow

function lazyload($content) {if(!is_feed()||!is_robots) {$content=preg_replace('/<img(.+)src=['"]([^'"]+)['"](.*)>/i',"<img$1data-original="$2" src="https://img-blog.csdnimg.cn/2022010612052269666.gif"$3>n",$content);}return $content;
}
add_filter ('the_content', 'lazyload');

JS代码(需引入jquery.lazyload.js)

// lazyload
$("img").lazyload({effect : "fadeIn",threshold : 100,
});

15. 获取文章中第一张图

如跑马灯图

wordpress二次开发技巧-functions.php篇
// 获取文章中第一张图
function wpdx_postimage($atts, $content = null) {extract(shortcode_atts(array("size" => 'full',"float" => 'none'), $atts));$images =& get_children( 'post_type=attachment&post_mime_type=image&post_parent=' . get_the_id() );foreach( $images as $imageID => $imagePost )$fullimage = wp_get_attachment_image($imageID, $size, false);$imagedata = wp_get_attachment_image_src($imageID, $size, false);$width = ($imagedata[1]+2);$height = ($imagedata[2]+2);return $fullimage;
}
add_shortcode("postimage", "wpdx_postimage");

显示图片

<a href="<?php the_permalink(); ?>" target="_blank"><?php echo do_shortcode("[postimage]"); ?>
</a>

16. 截取摘要

wordpress二次开发技巧-functions.php篇
// 摘要字数限制
function new_excerpt_length($length) {return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');// 摘要...
function new_excerpt_more( $more ) {return '...';
}
add_filter('excerpt_more', 'new_excerpt_more');

17. 获取文章第一个分类目录

因为一篇文章可能属于多个目录,有些地方只需要输出一个

// 获取文章第一个分类目录
function get_first_category(){$category = get_the_category();if($category[0]){echo '<a class="col_cat" href="'.get_category_link($category[0]->term_id ).'">'.$category[0]->cat_name.'</a>';}
}
add_filter('get_first_category', 'get_first_category');

HTML

<?php get_first_category(); ?>

18. 分类页获得文章简介

wordpress二次开发技巧-functions.php篇
// 获得category简介
function get_category_expert($length=240){$content = get_the_content();$trimmed_content = wp_trim_words( $content, $length, '<a href="'. get_permalink() .'"> [...]</a>' );echo $trimmed_content;
}
add_filter('get_category_expert', 'get_category_expert');

19. 根据页面类型指定每页显示的文章数

// 根据页面类型指定每页显示的文章数
function custom_posts_per_page($query){if(is_home()){$query->set('posts_per_page',9);//首页每页显示8篇文章}if(is_search()){$query->set('posts_per_page',5);//搜索页显示所有匹配的文章,不分页}if(is_archive()){$query->set('posts_per_page',-1);//archive每页显示25篇文章}if(is_tag()){$query->set('posts_per_page',4);//archive每页显示25篇文章}if(is_category()){$query->set('posts_per_page',9);//archive每页显示25篇文章}if(is_category(11)){$query->set('posts_per_page',-1);//archive每页显示25篇文章}
}//function
//this adds the function above to the 'pre_get_posts' action
add_action('pre_get_posts','custom_posts_per_page');

20. 缩略图

//添加特色缩略图支持
if ( function_exists('add_theme_support') )add_theme_support('post-thumbnails');/*
* 缩略图
*/function dm_the_thumbnail() {global $post;// 判断该文章是否设置的缩略图,如果有则直接显示if ( has_post_thumbnail() ) {echo '<a class="at_feature" href="'.get_permalink().'" title="阅读全文">';the_post_thumbnail('thumbnail');echo '</a>';} else { //如果文章没有设置缩略图,则查找文章内是否包含图片$content = $post->post_content;preg_match_all('/<img.*?(?: |t|r|n)?src=['"]?(.+?)['"]?(?:(?: |t|r|n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER);$n = count($strResult[1]);if($n > 0){ // 如果文章内包含有图片,就用第一张图片做为缩略图// 为了得到第一张图片的215x115尺寸,得用正则替换格式$thumb_first = $strResult[1][0];$thumb_split = strrpos($thumb_first, '.');$thumb_before = substr($thumb_first, 0, $thumb_split);$thumb_after = substr($thumb_first, $thumb_split, strlen($thumb_first));$reg = "/-d*xd*/im";$thumb_before = preg_replace($reg, "", $thumb_before);$thumb_src = $thumb_before.'-215x115'.$thumb_after;echo '<a class="at_feature" href="'.get_permalink().'" title="阅读全文"><img class="animated" src="'.$thumb_src.'" alt="缩略图" /></a>';}else { // 如果文章内没有图片,则用默认的图片。$random= mt_rand(0, 19);echo '<a class="at_feature" href="'.get_permalink().'" title="阅读全文"><img class="animated" src="'.get_bloginfo('template_url').'/images/thumbnail/default_thumbnail_'.$random.'.jpg" alt="缩略图" /></a>';}}}

显示缩略图

// 第一种
<?php if (has_post_thumbnail()){ the_post_thumbnail();} ?>// 第二种
<?php dm_the_thumbnail(); ?>

转自:wordpress二次开发技巧-functions.php篇

wordpress二次开发技巧-functions.php篇相关推荐

  1. wordpress php教程 pdf,wordpress二次开发全能教程.pdf

    wordpress 二次开发全能教程 1. 根据分类来制定导航条 A. 修改页面 header.php! <?php wp_list_categories('title_li='); ?> ...

  2. Revit二次开发_1.过滤器笔记篇

    Revit二次开发_1.过滤器笔记篇 前言 对象分类 过滤方法 前言 最近在用过滤器功能,先按照教程做了筛选墙,再自己做了筛选常规模型的功能,发现有点不一样,问题在于筛选这些Elements的时候没弄 ...

  3. discuz二次开发技巧

    discuz二次开发技巧 二次开发大多时候知识设置和处理,如果能够获知模板文件获得的变量数组将大大提高我们的开发效率 获取页面已经定义的变量 <--{eval printf_r(get_defi ...

  4. Revit二次开发之职业精神篇

    今天在某网站看到蛋总的免费资源被某些人拿来抄袭后改头换面,并以高价出售,感觉特别来气:作为蛋总免费分享资源的受益者,突然感慨万千,以这篇文章来表达一些自己的看法,希望作为Revit二次开发的爱好者在学 ...

  5. HTC VIVE Tracker的二次开发(实际操作篇)附软件

    HTC VIVE Tracker 作为一款优秀的VR设备,其有着非常好的定位精度,这时,我们就可以用这一设备来实现简单的开发,但是网上众多的教程中仅仅针对如何显示数据做了解读,但是,数据和我们自己编写 ...

  6. 【开发技巧】-- 一篇女朋友也能看懂的Spring整合第三方支付(微信支付-扫码支付实现篇)

    1.1 为什么要在项目中使用微信支付? 众所周知,支付宝与财付通(微信支付)是如今第三方支付的两大领头企业,同是微信是一个拥有大量用户群体的一个软件,在项目中整合微信支付在一定程度上可以方便用户购物支 ...

  7. iPhone开发技巧之工具篇(4)--- 使用afconvert转换WAV文件

    转载自:http://www.yifeiyang.net/iphone-development-skills-of-tool-papers-4-wav-file-conversion-using-af ...

  8. ecstore二次开发技巧

    1.改写删除方法function pre_recycle($rows) {if(is_array($rows)){foreach($rows as $key => $val){if(!($val ...

  9. 3ds Max .NET二次开发的基础入门篇

    3ds Max .NET SDK由以下.NET程序集组成. Autodesk.Max.dll - Contains wrappers that expose most of the API eleme ...

最新文章

  1. python numpy筛选 总数
  2. python对笔记本电脑的要求-学Python买什么笔记本电脑?
  3. GPS定位系统源码二次开发就选专为二次开发而生的GPSBD...
  4. cte公用表表达式_SQL Server公用表表达式(CTE)
  5. 图解对比MySQL索引为什么要用B+树
  6. JAVA计算机毕业设计幼儿园管理系统Mybatis+系统+数据库+调试部署
  7. Ubuntu16.0.4 通过Docker安装酷Q
  8. css设置遮罩层(半透明)
  9. bt种子磁力播放器 android,(安卓)种子磁力在线播放器 — 可离线至本地
  10. 【openGL2021版】obj模型
  11. c语言的链表ppt,C语言链表详解ppt.ppt
  12. php的lumen框架,Lumen框架“服务容器”源码解析
  13. 电脑之间快速传输超大文件(100GB以上)的方法
  14. 医院信息系统中服务器配置的原则,如何保障医院信息系统(HIS)中数据库的安全性...
  15. 工业控制计算机系统总线,工业控制计算机总线技术.ppt
  16. python系列3(list tupe dict )
  17. 【linux】nfs挂载错误wrong fs type, bad option, bad superblock
  18. Android系统辅助触控,辅助触控大师软件下载-辅助触控大师 安卓版v5.0.6-PC6安卓网...
  19. Java radius源码_Java开发的radius server服务端
  20. 联想台式电脑的计算机软件系统,联想电脑管家电脑版

热门文章

  1. 训练日志 2019.1.14
  2. 踩方格(信息学奥赛一本通-T1196)
  3. 拼数(洛谷-P1012)
  4. 16 SD配置-企业结构-分配-给信贷控制区分配公司代码
  5. 14 MM配置-BP业务伙伴-定义供应商科目组和字段选择
  6. POCO C++ Libraies介绍及常见用法
  7. 04简单线性回归实战
  8. 04_使用Influxdb自带函数查询
  9. swiper6.0改造 “翻页按钮”:自定义style样式和position - 案例篇
  10. “此网站使用的安全性配置已过时,这可能会导致您的信息(例如密码、消息或信用卡卡号)”