WordPress 3.6增加了很多有用的函数,把过去需要一堆代码实现的功能化繁为简。下面介绍一些用到频率可能比较高的函数。

get_attached_media()

获取属于当前post的附件,例如image、video、audio等,$type表示附件类型,可以为空。

<?php get_attached_media( $type, $post_id ) ?>

例如:

$media = get_attached_media( 'audio', 102 );

文档»

wp_registration_url()

返回当前站点的注册链接的url,无参数。

例如:

<a href="<?php echo wp_registration_url(); ?>" title="Register">Register</a>

文档»

get_post_galleries()

获取插入到当前或指定文章中所有的gallery,以数组形式返回,返回纯数据或html取决于第二个参数的设置

<?php get_post_galleries( $post, $html ) ?>

例如:

$galleries = get_post_galleries('',false);

返回结果:

Array
(
    [0] => Array
        (
            [ids] => 87,86,85
            [src] => Array
                (
                    [0] => http://www.solagirl.net/wp-content/uploads/2013/08/url-150x150.jpg
                    [1] => http://www.solagirl.net/wp-content/uploads/2013/08/1205804458787_60411-150x150.jpg
                    [2] => http://www.solagirl.net/wp-content/uploads/2013/08/004-150x150.jpg
                )

        )

    [1] => Array
        (
            [ids] => 192,191,188,187
            [src] => Array
                (
                    [0] => http://www.solagirl.net/wp-content/uploads/2012/12/1614575_3634530-150x150.jpg
                    [1] => http://www.solagirl.net/wp-content/uploads/2012/12/2-150x150.jpg
                    [2] => http://www.solagirl.net/wp-content/uploads/2013/06/slide2-150x150.jpg
                    [3] => http://www.solagirl.net/wp-content/uploads/2013/06/slide1-150x150.jpg
                )

        )

)

文档»

类似函数还有:

get_post_galleries_images()
get_post_gallery()
get_post_gallery_images()

shortcode_exists()

若shortcode已经注册返回true,否则返回false

例如:

if ( shortcode_exists( 'gallery' ) ) {
    // The  short code exists.
}

has_shortcode()

检查内容中是否含有shortcode。

例如:

$content = 'This is some text, (perhaps pulled via $post->post_content). It has a  shortcode.';

if( has_shortcode( $content, 'gallery' ) ) {
    // The content has a  short code, so this check returned true.

}

HTML5 Markup

想让comment表单和search表单支持HTML5标签吗,3.6版只需一句代码就可以办到

add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list' ) );

20条留言

  1. 博主很牛啊。看了你好多文章,感受颇深啊。

  2. SOLA你好,请问WORDPRESS3.6中的 portfolio url在哪里可以修改,
    比如原来的URL为:www.xxx.com/portfolio/another-item
    现在想修改为www.xxx.com/resort/another-item

    就是想把那个portfolio这个词换成别的词,还有它的面包条导航在哪里可以相应的添加和修改呢,谢谢

      1. 谢谢你提供的插件,不过它不能实现如下的功能 portfolio==resort ,谢谢 :
        比如原来的URL为:www.xxx.com/portfolio/another-item
        现在想修改为www.xxx.com/resort/another-item
        是否可以把portfolio==resort ,谢谢

        就是想把那个portfolio这个词换成别的词,还有它的面包条导航在哪里可以相应的添加和修改呢

        1. 那个改下注册custom post type的代码就行了啊,到你主题代码里去找吧,全局搜索。

          1. 好的,那是不是升级主题后,又得重新修改呢,谢谢

          2. SOLA,是不是这个文件呢,帮忙看看:

            array(
            ‘name’ => __( ‘Portfolio’ ),
            ‘singular_name’ => __( ‘Project’ )
            ),
            ‘public’ => true,
            ‘show_ui’ => true,
            ‘menu_position’ => 5,
            ‘rewrite’ => true,
            ‘supports’ => array( ‘title’, ‘editor’, ‘author’, ‘thumbnail’, ‘excerpt’, ‘trackbacks’, ‘custom-fields’, ‘comments’, ‘revisions’)
            );

            register_post_type( ‘portfolio’ , $args );
            }

            register_taxonomy(“project_type”, array(“portfolio”), array(“hierarchical” => true, “label” => “Project Types”, “singular_label” => “Project Type”, “rewrite” => true));

            //add_action(“admin_init”, “portfolio_meta_box”);

            add_filter(“manage_edit-portfolio_columns”, “project_edit_columns”);

            function project_edit_columns($columns){
            $columns = array(
            “cb” => “”,
            “title” => “Project”,
            “description” => “Description”,
            “type” => “Type of Project”,
            );

            return $columns;
            }

            add_action(“manage_posts_custom_column”, “project_custom_columns”);

            function project_custom_columns($column){
            global $post;
            switch ($column)
            {
            case “description”:
            the_excerpt();
            break;
            case “type”:
            echo get_the_term_list($post->ID, ‘project_type’, ”, ‘, ‘,”);
            break;
            }
            }

            这个怎么修改才能让它的URL修改呢,在哪里可以修改呢,谢谢

          3. SOLA,谢谢你的帮助我修改好了,我比较笨所以有时问的问题比较笨,希望你不要见怪,谢谢

        2. 说怪麻烦的,你去看下register post type的文档,一目了然

          1. 好的,看来修改代码难度很高,我看到有一款插件Portfolio Post Type Renamer,它可以实现,但是不知道那里可以下载到,你知道吗,谢谢

          2. 对了想问问,怎么可以用手机直接回复用户的留言,支持ANDROID & IPHONE,就象你这样用不同的手机平台直接回复,谢谢,还有是否可以通过手机直接发布和更新文章呢,谢谢

  3. gallery是不是都是获取的文章中图片的链接信息?除了图片还有什么属于gallery范畴呢?

    1. gallery是指在上传媒体界面用创建相册功能插入的图片,不是文章中任意图片。

  4. SOLA请教一个问题,如何在首页里显示指定几个目录里的最新文章列表呢,每一个选中的目录各显示5条最新的文章以列表形式显示,是否可以设定为3列,那一列放一类目录文章,比如列一放,数码,列二放手机,列三放家电文章列表呢,还有3类目录里的列表是否可以放在一个TABLE里面呢,然后在TABLE上面的标题里有数码,手机,家电呢,是否可以用简码还有什么好的插件可以实现呢,就象是做成门户类似的风格那样,谢谢

    1. 我觉得你直接找一个wordpress cms主题,就解决了。
      你说的核心功能就是列出目录下的最新文章,这样的插件很多,比如http://wordpress.org/plugins/list-category-posts/
      不用插件用代码,也不过就是get_posts调用,至于布局和样式,我想这是主题的问题吧。就像用上面那个插件,只需要插入shortcode就行,你就直接在首页里写html代码,也能做成你要的样子。

      1. 好的,谢谢你的list-category-posts

  5. 你是怎么发现的

评论功能已关闭