分类: Geek

折腾相关的类容

  • wordpress子主题

    wordpress子主题

     

    https://codex.wordpress.org/zh-cn:%E5%AD%90%E4%B8%BB%E9%A2%98

    WordPress子主题也是一个主题,它继承了另一个主题——父主题——的功能,并允许你对父主题的功能进行修改,或者添加新功能。本文将说明如何创建一个基本的子主题并解释您能用它来干什么。本文将使用 WordPress 3.0 的默认主题 Twenty Ten 作为父主题进行举例说明。

    创建一个子主题是很简单的。创建一个目录,将格式编写正确的 style.css 文件放进去,一个子主题就做成了!只需要对 HTML 和 CSS具有基本的了解,您就可以通过创建一个非常基本的子主题 来对一个父主题的样式和布局进行修改和扩展,而不需要对父主题的文件作任何修改。通过这样的方式,当父主题被更新的时候,您所做的修改就可以保存下来。

     

    目录结构

    子主题放在wp-content/themes目录下属于自己的目录里。下面的结构显示的就是子主题和它的父主题(Twenty Ten)在典型的WordPress目录结构中的位置:

    • public_html
      • wp-content
        • themes (主题存放的目录)
          • twentyten (示例中父主题Twenty Ten的目录)
          • twentyten-child (子主题存放的目录,可以任意命名)
            • style.css (子主题中不可或缺的文件,文件名必需为 style.css)

    这个文件夹里面可以少至只包含一个style.css文件,也可以包含多至一个完整WordPress主题所拥有的文件:

    1. style.css (必需)
    2. functions.php (可选)
    3. Template files (可选)
    4. Other files (可选)

    让我们看看它们是如何起作用的。

    必需的style.css文件

    style.css是一个子主题唯一必须的文件。它的头部提供的信息让WordPress辨认出子主题,并且重写父主题中的style.css文件

    对于任何WordPress主题,头部信息必须位于文件的顶端,唯一的区别就是子主题中的Template:行是必须的,因为它让WordPress知道子主题的父主题是什么。

    下面是一个style.css文件的头部信息的示例:

    /*
    Theme Name:     Twenty Ten Child
    Theme URI:      http: //example.com/
    Description:    Child theme for the Twenty Ten theme 
    Author:         Your name here
    Author URI:     http: //example.com/about/
    Template:       twentyten
    Version:        0.1.0
    */
    

    逐行的简单解释:

    • Theme Name. (必需) 子主题的名称
    • Theme URI. (可选) 子主题的主页。
    • Description. (可选) 子主题的描述。比如:我的第一个子主题,真棒!
    • Author URI. (可选) 作者主页。
    • Author. (optional) 作者的名字。
    • Template. (必需) 父主题的目录名,区别大小写。 注意: 当你更改子主题名字时,要先换成别的主题。
    • Version. (可选) 子主题的版本。比如:0.1,1.0,等。

    */ 这个关闭标记的后面部分,就会按照一个常规的样式表文件一样生效,你可以把你想对WordPress应用的样式规则都写在它的后面。

    要注意的是,子主题的样式表会替换父主题的样式表而生效。(事实上WordPress根本就不会载入父主题的样式表。)所以,如果你想简单地改变父主题中的一些样式和结构——而不是从头开始制作新主题——你必须明确的导入父主题的样式表,然后对它进行修改。下面的例子告诉你如何使用@import规则完成这个。

    一个子主题的范例

    这个例子中的父主题是Twenty Ten,我们喜欢这个主题的几乎每个部分,除了网站标题的颜色,因为我想把它从黑色的改成绿色的。使用子主题的话,只用完成以下三个简单的步骤:

    1. wp-content/themes目录下创建一个新目录,并将它命名为twentyten-child(或其他你喜欢的名称)。
    2. 将下面的代码保存在名为style.css的文件里,并将它放到新建的这个文件夹。
    3. 到WordPress的控制台>主题,然后激活你的新主题:Twenty Ten Child。
    /*
    Theme Name: Twenty Ten Child
    Description: Child theme for the Twenty Ten theme 
    Author: Your name here
    Template: twentyten
    */
    
    @import url("../twentyten/style.css");
    
    #site-title a {
        color: #009900;
    }
    

    下面一步步解释上面代码的作用:

    1. /* 开启子主题的头部信息。
    2. Theme Name: 子主题名称的声明。
    3. Description: 主题的描述(可选,也可被省略)。
    4. Author: 作者名字的声明(可选,也可被省略)。
    5. Template: 声明子主题的父主题,换言之,父主题所在的文件夹的名称,区分大小写。
    6. */子主题头部信息的关闭标记。
    7. 用 @import规则将父主题的样式表调入
    8. #site-title a 定义网站标题的颜色(绿色),覆盖父主题中相同的样式规则。

    注意 @import 规则

    需要注意的是,@import 规则之前没有其他的CSS样式规则,如果你将其他的规则置于它之上,那么它将无效,并且父主题的样式表不会被导入。

    使用 functions.php

    不像style.css,子主题中的functions.php不会覆盖父主题中对应功能,而是将新的功能加入到父主题的functions.php中。(其实它会在父主题文件加载之前先载入。)

    这样,子主题的functions.php提供了一个灵活稳定的方式来修改父主题的功能。如果你想在你的主题里加入一些PHP函数,最快的方式可能是打开functions.php文件然后加入进去。但那样并不灵活:下次你的主题升级更新了,你加入的新功能就会丢失掉。相反地,如果你使用子主题,将functions.php文件放进去,再将你想加入的功能写进这个文件里,那么这个功能同样会工作得很好,并且对于父主题以后的升级更新,子主题中加入的功能也不会受到影响。

    functions.php文件的结构非常简单:将PHP起始标签置于顶部,关闭标签置于底部,它们之间就写上你自己的PHP函数。你可以写得很多,也可以写得很少,反正按你所需。下面的示例是一个基本的functions.php文件的写法,作用是将favicon链接加入到HTML页面的head元素里面。

    <?php
    
    function favicon_link() {
        echo '<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />' . "\n";
    }
    add_action('wp_head', 'favicon_link');
    
    ?>
    

    给主题作者的提示。事实上子主题的functions.php首先加载意味着你的主题的用户功能可插入——即子主题是可替换的——通过有条件地进行声明。例如:

    if (!function_exists('theme_special_nav')) {
        function theme_special_nav() {
            //  Do something.
        }
    }
    

    用这种方式,子主题可以替换父主题中的一个PHP函数,只需要简单地对它再次声明。

    模板文件

    模板文件 在子主题中的表现和style.css一样,它们会覆盖父主题中的相同文件。子主题可以覆盖任何父主题模板中的文件,只需要创建同名文件就行。(注意:index.php在WordPress3.0及以上版本才能被覆盖。)

    同样,这项WordPress的功能允许你修改父主题的样式功能而不用去编辑父主题的文件,并且你的修改能让你在更新父主题后继续保留。

    下面是一些使用模板文件的子主题的例子:

    • 增加一个父主题没有提供的模板(例如:网站地图页面的模板,或者一单栏页面,它们在页面编辑,模板选择里是可用的)
    • 增加一个比父模板更加具体的模板(见模板级别)。(例如:新加的tag.php模板用于按tag归档的文章来代替父主题中通常的archive.php模板。)
    • 替换父主题中的一个模板.(例:使用你自己的home.php来覆盖父主题中的home.php

    其他文件

    除了style.css,functions.php,index.php和home.php,子主题可以使用任何正式主题使用的类型的文件,只要文件被正确链接。打个比方,你可以使用在样式表里或者Javascript文件里链接的图标、图片,或者从functions.php文件中调用出来的额外PHP文件。

  • wallproxy的优势和proxy.ini配置

    wallproxy的优势和proxy.ini配置

    WallProxy较GoAgen的优势就是,可以视频分段下载。(看视频绝笔爽畅)
    多个Appid同时下载视频
    在[gae]的参数里:
    max_threads = 8
    (最好把proxy.ini内的appid填满10个,然后保留两个,剩下8)
    也就是说。8个appid同时下载视频。

    测试效果:
    1小时+的720P视频,只需要几分钟就可以缓冲到一大半。(20M带宽的情况下)
    所以观看视频的流畅度,完全只受限制于你自身网络带宽的瓶颈限制。
    wallproxyproxy
    查看GAE数据:10个appid(thiead)里基本上全部都在跑流量。负债均衡!
    不像是goagent只是单纯的增加个数,一个用完用下一个。

  • 系统升级Python到3.3失败!!

    系统升级Python到3.3失败!!

    Goagent 3.0版本,需要系统有Python3.3版本的支持。
    直接下载,
    然后没有犹豫的 通过终端,参照下面这篇升级2.7.3的文章步骤操作下去
    一路删除了系统自带的Python 2.7默认版本。
    替换进了3.3版本,

    第一步, 下载最新的Python版本

    下载的地址就在http://python.org, 最新的版本是Python 2.7.3 Mac OS X 64-bit/32-bit x86-64/i386 Installer (for Mac OS X 10.6 and 10.7),大约是18.8Mb。DMG的格式,下载完成,双击即可安装,不需要任何设置,默认的安装路径是 /Library/Frameworks/Python.framework,不过这和系统原有的路径不一样。因为系统之前是存在Python的,所以安装成功后,在Terminal里运行Python,看到的依旧是2.7.2的版本号。接下来,我们要做的就是把原来的系统版本移除,让新的版本正常工作。

    第二步, 把Python挪到正确的位置去

    我印象里至少在Mac OSX 10.7以后都自带Python的,所以我们假设你的系统是自带Python,现在要删除Ta

    sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7

    把第一步里安装好的Python目录移到原本系统所持有的目录位置。

    sudo mv /Library/Frameworks/Python.framework/Versions/2.7 /System/Library/Frameworks/Python.framework/Versions

    第三步,修改文件所属的Group

    设置Group为wheel,原来系统自带的就是这样的。

    sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/2.7

    第四步,更新一下Current的Link

    在Versions的目录里有一个Current的link,是指向当前的Python版本,原始是指向系统自带的Python2.7.2,我们把它删除后,link就失效了,所以需要重新链一下

    sudo rm /System/Library/Frameworks/Python.framework/Versions/Current
    sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7 /System/Library/Frameworks/Python.framework/Versions/Current
    第五步,重新链接可执行文件

    1) 先把系统原来的执行文件删掉

    sudo rm /usr/bin/pydoc
    sudo rm /usr/bin/python
    sudo rm /usr/bin/pythonw
    sudo rm /usr/bin/python-config

    2) 建立新的链接

    sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/pydoc /usr/bin/pydoc
    sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python /usr/bin/python
    sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw /usr/bin/pythonw
    sudo ln -s /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python-config /usr/bin/python-config

    最后,更新一下.bash_profile文件

    cd ~
    vim .bash_profile (只要能编辑就行)
    插入新的Python路径

    # Setting PATH for Python 2.7
    # The orginal version is saved in .bash_profile.pysave
    PATH="/System/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
    export PATH

    大功告成!
    重新开启一个Terminal,然后运行 Python -V,看看出现的是不是”Python 2.7.3″。

    可惜悲剧了。。。3.3无法启动。

    记录,以待解决。

     

    13-05-30更新:
    解决方法:
    找同版本的Mac的电脑拷贝了一份被删除的Python2.7默认文件夹。
    然后按照当时的操作步骤逆向操作了一遍
    由于当时升级3.3时,修改了.bash_profile,添加了PATH。
    所以导致所有命令无法找到,
    只能在文件夹中,修改.bash_profile文件(隐藏状态)。

    现在直接Terminal中执行goagent或者wallproxy的 .py文件都可以顺利正常。
    但是使用goagentmac却无法运行。始终显示的状态是 “GoAgent Starting….”

  • Mac下使用godaddy的ssh

    Mac下使用godaddy的ssh

    针对全局翻墙使用,涵盖所有客户端和工具。
    方法通用适用与goagent的全局。

    步骤:
    1.打开终端

    2.输入ssh -Dport username@domainname(ip)

    3.网络偏好-》高级-》代理-》socks代理    地址:127.0.0.1    端口:7070(port)

    全局翻墙-godaddy美国服务器流量访问

    0F9FF1AC-5B05-4AE2-B1CF-6DA993EEF3BD

  • WordPress 安装-文件夹权限设置

    WordPress 安装-文件夹权限设置


    当你的wordpress遇到以下问题时:

        1. 不能上传图片 
        2. 不能自动安装主题、插件(需要FTP账户) 
        3. 不能自动更新 
        4. 其它任何需要wordpress写文件的问题

    这些问题基本都是一个原因, 你的wordpress目录不属于当前的用户和组, 即web访问的用户没有权限操作wp的一切需要写权限的操作。 解决方法 :
    首先需要你有root权限,SSH登录,进入到wp的安装目录:

    cd /var/www/html/my_wp_blog

    给予所有的写权限:

    chmod 777 wp-content

    接下来给你的博客的文章上传一张图片,WP会生成一个目录, 然后查看是哪个用户创建了文件夹。一般情况下,这个用户名叫“ apache”,也有不少人发现这个用户是“nobody”,就 飘易 本身遇到的问题,我在VPS上安装的是LNmp, 这个用户是“www”。

    进入到wp的wp-content目录,查看该目录下所有文件/ 文件夹的权限,所属用户、用户组:

    cd wp-content
    ls -l

    total 16
    -rw-r–r– 1 root root 30 May 4 2007 index.php
    drwxr-xr-x 3 root root 4096 Feb 10 19:31 plugins
    drwxr-xr-x 5 root root 4096 Mar 23 03:04 themes
    drwxrwxrwx 3 www www 4096 Mar 24 02:08 uploads

    注意上传目录 uploads 是用户 www 创建的。
    接下来把wp-content权限还原到 755::

    cd ..
    chmod 755 wp-content

    下来就是实际修复的命令了, 改变wp所在文件夹的拥有者为刚找到的这个用户www:

    cd ..
    chown -R www:www my_wp_blog

    OK,问题解决了。

  • 血泪的代价告诉我们

    血泪的代价告诉我们

    426190110

    血泪的代价告诉我们,任何的程序,软件,路径,文件名….
    中英文都能用的地方尽量用英文。
    能不用中文的地方绝对不用中文!