二次开发  求源码解析

解决方案 »

  1.   

    wordpress源码分析
    说实在本博客的初衷是源自于wordpress这个开源的博客而建立,目的是为了和互联网上的初学者一起来学习PHP编程技术,但在目前为止,通过搜索引擎而访问康盛博客的量实在是太少,也做了一些SEO优化方面的东西,但是关键字“PHP教程”,本来在百度还有个排名(28名左右),到现在百度的算法的改变,致使我等小站,几乎要挂掉了。所以在此,本人还想通过引擎过来的寥寥几人,多多宣传吧,或者把php教程在各位的博客上做个链接吧!比如百度空间,CSDN之类的,那就不胜感激了,同样就会有更多的人看到我为初学者写的PHP教程了。当然从SEO的角度来看,如果大家链接的是康盛博客就没有什么效果了。助人为乐嘛,还有就是大家看了文章之后也留下点什么,也评论下吧,可以帮助大家呀!wordpress源码分析从开始到现在也写了几十篇文章,内容基本上是基于wordpress源码分析而来,但一个知识点可能要学的东西很多,所以wordpress源码在分析这块可能大家都感觉不到了。下面就偶尔来看段代码吧。最近在学PHP面向对象编程方面的知识,这可能通过我的PHP教程目录查看到全部的文章。wordpress 后台登录页面源代码分析:文件:wp-admin/index.php
    <?php  
    /** 
     * Dashboard Administration Panel 
     * 
     * @package WordPress 
     * @subpackage Administration 
     */  
      
    /** Load WordPress Bootstrap */  
    require_once('admin.php');  
      
    /** Load WordPress dashboard API */  
    require_once(ABSPATH . 'wp-admin/includes/dashboard.php');  
      
    wp_dashboard_setup();  
      
    wp_enqueue_script( 'dashboard' );  
    wp_enqueue_script( 'plugin-install' );  
    wp_enqueue_script( 'media-upload' );  
    wp_admin_css( 'dashboard' );  
    wp_admin_css( 'plugin-install' );  
    add_thickbox();  
      
    $title = __('Dashboard');  
    $parent_file = 'index.php';  
    require_once('admin-header.php');  
      
    $today = current_time('mysql', 1);  
    ?>  
      
    <div>  
    <?php screen_icon(); ?>  
    <h2><?php echo esc_html( $title ); ?></h2>  
      
    <div id="dashboard-widgets-wrap">  
      
    <?php wp_dashboard(); ?>  
      
    <div></div>  
    </div><!-- dashboard-widgets-wrap -->  
      
    </div><!-- wrap -->  
      
    <?php require(ABSPATH . 'wp-admin/admin-footer.php'); ?>  
    首先加载了一些文件,在这些文件里大量的函数,你wp_enqueue_script( ‘dashboard’ );wp_enqueue_script( ‘plugin-install’ );之类的就被定义在这些文件里,接着包含头部文件相对应在文件底部包括了admin-footer.php文件,使用了绝对路径,这样在执行速度上要快一些吧。至于其他的代码是页面布局方面的,没什么好说,如果要解释以后吧,会增加CSS教程之类的文章的,问题是大家可得帮我推广下吧,这也算是我为大家尽一把力了。天下苍生也感激你的!
      

  2.   

    wordpress源码分析: query_posts()函数 (wordpress日志调用)
    将query_posts()放在LOOP之前限定你所需要的条件,wp_query会产生一个新的使用你的参数的SQL查询,而忽视通过URL接收到的其它的参数,如果想不忽略,可以在调用中使用$query_string。
    query_posts($query_string . "&order=ASC")
     
    设置文章显示的顺序,但是不干扰其余的查询字符串,参数前须有“&”符号
    其他还有N多用途~~
    主页不显示某一分类下的日志
    <?php
       if (is_home()) {
          query_posts("cat=-3");
       }
    ?>
    获得特定的日志
    <?php
    query_posts('p=5');
    ?>
    获得特定的页面
    <?php
    query_posts('page_id=7');      //只返回网页7
    ?>
    <?php
    query_posts('pagename=about'); //只返回关于网页
    ?>
    <?php
    query_posts('pagename=parent/child'); // 返回母网页的子网页
    ?>
    创建所有文章列表,并且提供分页功能
    <?php
    query_posts($query_string.'posts_per_page=-1');
    while(have_posts()) { the_post();
    put your loop here ;
    }
    ?>
    ==========================================
    类别 参数
    显示属于某个类别的文章
    cat
    category_name
    根据ID显示一个类别
    只显示来自一个类别ID的文章
    query_posts('cat=4');
    根据名称显示一个类别
    只显示属于某个类别名的文章
    query_posts('category_name=Staff Home');
    显示几个类别及ID
    显示属于几个类别ID的文章
    query_posts('cat=2,6,17,38');
    删除某个类别的文章
    显示所有的文章,但是类别ID前面有个’-’(负号)负号的类被除外。
    query_posts('cat=-3');
    删除属于类别3的所有文章。有一个限制性条款:会删除只属于类别3的所有文章。如果一个类别也同时属于其它的类别,这个类别仍然不会被删除。
    标签参数
    显示与某个标签相关的文章
    tag
    为某个标签提取文章
    query_posts('tag=cooking');
    获得拥有任何这样的标签的文章
    query_posts('tag=bread,baking');
    获取拥有这三个标签的文章
    query_posts('tag=bread+baking+recipe');
    作者参数
    你也可以根据作者限制文章数目
    author_name=Harriet
    author=3
    author_name在 user_nicename区操作, 同时作者 在作者id上操作。
    文章 & 网页参数
    返回一篇单独的文章或者一个单独的网页
    p=1 – 使用文章 ID来显示第一篇文章
    name=first-post – 使用 post Slug 显示第一篇文章
    page_id=7
    pagename=about
    showposts=1 (你可以使用 showposts=3,或者其它的任何数字显示一定数目的文章)
    由于 模板层级方面的原因, home.php先执行了。这意味这你可以编写一个home.php,home.phh调用query_posts()重新得到一个特别的网页并且将那个网页设置为你的首页。没有任何插件或者hacks,你需要运行一个机制,并且显示和维护一个非博客的首页。
    更有用的方法,可能是利用WP的网页功能并且为你的首页使用这个功能。你可以将”关于网页”设置为entry point或者设置为站点的末页。你可能执行一些更动态的步骤,设置一个自定义网页,显示最近的评论,文章,类别,存档。请看看下面的例子。
    时间参数
    得到某个特别的时间段内发表的文章
    hour=
    minute=
    second=
    day= – 一个月中的每一天; 显示,例如,十五号发表的所有文章。
    monthnum=
    year=
    网页参数
    paged=2 -显示使用”以前发表的文章”链接时,通常在网页2上显示的文章。
    posts_per_page=10 -每个网页显示的文章数目;-1这个值,会显示所有的文章。
    order=ASC -按时间顺序显示文章,以相反的顺序显示DESC(默认)
    Offset 参数
    你不能转移或者忽视一个或者更多的原始文章,这些文章一般是你的query同时使用offset参数收集到的。
    下面的函数会显示(1)最近的5篇文章
    query_posts('showposts=5&offset=1');
    根据参数排序
    根据这个区给得到的文章排序
    orderby=author
    orderby=date
    orderby=category
    orderby=title
    orderby=modified
    orderby=modified
    orderby=menu_order
    orderby=parent
    orderby=ID
    orderby=rand
    同时考虑”ASC”或者的”DESC”的排序参数
    联合参数
    你可能从上面的例子中注意到,你使用一个&(&符号)将参数组合在一起,像:
    query_posts('cat=3&year=2004');
    类别13,关于当前月份显示在主页上的文章:
    if (is_home())  {
    query_posts ($query_string . '&cat=13&monthnum=' . date('n',current_time('timestamp'))); }
    在2.3版本中,这个参数组合会返回属于类别1同时属于类别3的文章,只显示两篇(2)文章,根据标题,按降序排列:
    query_posts(array('category__and'=>array(1,3),'showposts'=>2,'orderby'=>title,'order'=>DESC));
    在2.3和2.5版本中,你可能期待下面的内容,返回属于类别1并且标签为”苹果”的所有文章
    query_posts('cat=1&tag=apples');
    一个bug阻止这个运行。请看看Ticket #5433,一个工作区要搜索几个使用+的标签
    query_posts('cat=1&tag=apples+apples');
    对于先前的查询,这个会产生期待的结果。注意使用’cat=1&tag=apples+oranges’能够产生期待的结果。
      

  3.   

    走进wordpress 源码分析之一wordpress启动后,第一个文件是根目录下的index.php.这个index.php里面代码不多,除了注释,仅仅两行代码
    第一句代码定义了一个常量’WP_USE_THEMES’为真define('WP_USE_THEMES', true);
    第二句代码装载WordPress环境和模板require('./wp-blog-header.php');
    稍详细分析一下:
    从’WP_USE_THEMES’名字可看出来它的含义应是表明使用主题。
    使用搜索工具看到,共出现了3次,
    wp-admin\includes\upgrade.php(1625行):
    wp-includes\template-loader.php(6行)
    wp-includes\template-loader.php(21行))
    具体作用到时再将。