国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

??
(?)???? ?????
API ???? ?? ??: jQuery
????? API
???
1. ???? ?? ????
2: ??? ? ?? ??, ?? ??? ??
3。合理的默認(rèn)值
先設(shè)計,后構(gòu)建
保持直覺
結(jié)論
? CMS ???? Word??? WordPress ??: ??? API ? ????? ??

WordPress ??: ??? API ? ????? ??

Sep 02, 2023 am 11:33 AM

增強 WordPress:打造改進的 API 和庫

????, ??, ??? ??? ? ??? ??? ?? ?? ???? ???? ? ?? ??? ???. ?? ???, ?? ???, ??? ???? ? ??? ???? ??? ??? ?? ??? ??? ?? ??? ????.

???? ??? ??? ?? ? ?????. ?? ???? ??/??/??/??? ?? ???? ? ??? ??? ??? ???? ???.

??? ??????? ?????.

(?)???? ?????

????? ??? ?? ??? ?????. ?? ????? ???? ?? "????"? ???? PHP??? ???? ?? ???? ?? ???? ???? ??? ???? ??? ??? ?????.

??, ?? ? ???? ??? ?? ??? ???? ???????? ??? ?? ??? ????. ???? ??? ?? ??? ???? ??? ??? ??? ????? ??? ????.

API ???? ?? ??: jQuery

??>

2006??? JavaScript? ???? ???? ?? ??? ???????. ?? ???? ??? ??? ?? DOM?? ???? ??? ??? ????.

???

??!

jQuery? JavaScript? ?? ???? ????. 2000?? ???? ? ??? ?? ?? ???? ????????? ?? “?? ??? ?”? ?? ??? ???? ??? ??. ??? ??? ???? ???? jQuery? JavaScript? "??? ??"? ???? ????. ???? ?? ? ?? ?? ??? ???? ?????.

????? ???? ?? ??? ????? ?? ???? ?? ?? ?? CSS ???? ??????. ??? ???? ??? ??? ?? ?? ???? ????? ?? ???. ?? jQuery? ???? ?? ??? ?? ??? ?????.

???

2006?? 680????? Ajax ?? ???. jQuery? ?? API? ???? ?? ???? ?????.

???

????? API

API? "?? ???"? ????? ?? ??? ???? ???? ????? ?????? ?????. Twitter API? Facebook API? ????? WordPress API? ?????. ???? ???? ?? ?? ?????? ??? ????? ?? ????. ???? wp_insert_post? ?????.

??? WordPress API?? ?? ??? ??? ????. get_the_titleget_the_permalink 會生成錯誤,您使用 get_permalink ? ??? ?? ????. ?????, ?? ?? ??? ??? ?? ???? ??? ?? ??? ?? ?? ????? ????? ? ?? ??? ???? ? ????.

??? ??? ??? ?? ?? ?????(??? ???)? ??? ??? ?? ?? ???? ?? ??? ??? ? ????. ???? ?? ???? ????? ??? ??????? ? ??? ?????? ???? ? ????.


???

?? ??? ??? ?? ??? ??? ?? ?? ??? ??? ??? ??? ???? ?????? ??????.

1. ???? ?? ????

???? ??? ??? ?? ?????. WordPress?? ??? ID(?? ?? ID?)? ???? ???? ???? ??? ???? ?? ?? ??? ??????.

??? ?? ?? ??? ?? ?? ??? ?? ?????:

???

??? ? ?? ??? ?? ???!

???

2: ??? ? ?? ??, ?? ??? ??

?? ?????! ??, ??? ??? ?? ???? ??? ?? ????? ???? ??? ???? ???.

??? ??? ?? ???? ???? ??? ?? ??? ?????.

???

??? get_post?而不是 get_the_ID? ??? ? ????. ??? ??? ??? ?????. ??? ????, ? ? ? ?? ???? ??? ? ????

??? WP_Post??? ?? ???? ???? ?? ??? ? ??? ??? ??? ? ?? ????. ??? ??? ?????:

???

???? ???? WP_Post 對象一個數(shù)組,您的函數(shù)仍然可以幫助他們獲得所需的內(nèi)容。這是成功 API 的重要組成部分:隱藏混亂的內(nèi)部結(jié)構(gòu)。您可以為 get_thumbnail_src_by_post_idget_thumbnail_src_by_wp_post_object.??

??

??? ????? ??? ??? ??? ??? ?? ?? ? ??? ? ? ????. ?? ???? API? ??? ?????. ???? ??? ??? ????. get_thumbnail_src_by_post_id ? get_thumbnail_src_by_wp_post_object.? ?? ??? ??? ?? ? ????.

??? ? ??? ???? ? ?? ?? ??? ?? ??? ??? ?????? ????? ?????? ???? ? ????. ???? ??? ??? ? ??? ?? ??? ??? ???? ?????.

?????? ???????. ?? ?? ??? ??? ??? ???? ??

3。合理的默認(rèn)值

function get_thumbnail_src( $post = false ) {

    if (  false === $post ) {
        $post = get_the_ID();
    } else if ( is_object( $post ) && isset( $post->ID ) ) {
        $post = $post->ID;
    } else if ( is_array( $post ) && isset( $post['ID'] ) ) {
        $post = $post['ID'];
    }
    
    $thumb_id = get_post_thumbnail_id( $post );
    $src = wp_get_attachment_thumb_url( $thumb_id );
    
    return $src;
    
}

我們再次進行了簡化,因此用戶無需發(fā)送帖子,甚至無需發(fā)送帖子 ID。在循環(huán)中時,所需要做的就是:

echo '<img src="'.get_thumbnail_src().'" />';

我們的函數(shù)將默認(rèn)為當(dāng)前帖子的 ID。這正在變成一個非常有價值的功能。為了確保它能很好地發(fā)揮作用,讓我們將它包裝在一個類中,這樣它就不會污染全局命名空間。

/*
Plugin Name: JaredTools
Description: My toolbox for WordPress themes.
Author: Jared Novack
Version: 0.1
Author URI: http://upstatement.com/
*/

class JaredsTools {

    public static function get_thumbnail_src( $post = false ) {
    
        if (false === $post ) {
            $post = get_the_ID();
        } else if ( is_object( $post ) && isset( $post->ID ) ) {
            $post = $post->ID;
        } else if ( is_array( $post ) && isset( $post['ID'] ) ) {
            $post = $post['ID'];
        }
        
        $thumb_id = get_post_thumbnail_id( $post );
        $src = wp_get_attachment_thumb_url( $thumb_id );
        
        return $src;
        
    }
    
}

并且不要在您的類前面添加 WP。我將其設(shè)為公共靜態(tài)函數(shù),因為我希望它可以在任何地方訪問,并且它不會改變:輸入或執(zhí)行不會更改函數(shù)或?qū)ο蟆?

該函數(shù)的最終調(diào)用是:

echo '<img src="'.JaredsTools::get_thumbnail_src().'">';

先設(shè)計,后構(gòu)建

讓我們繼續(xù)處理更復(fù)雜的需求。當(dāng)我編寫插件時,我發(fā)現(xiàn)我總是需要生成不同類型的錯誤和/或更新消息。

但是基于事件的語法一直困擾著我:

add_action( 'admin_notices', 'show_my_notice');
functon show_my_notice(){
    echo '<div class="updated"><p>Your thing has been updated</p></div>';
}

WordPress 遵循這種基于事件的架構(gòu)有很多充分的理由。但這并不直觀,除非您想坐下來記住不同的過濾器和操作。

讓我們將此匹配作為最簡單的用例:我需要顯示管理員通知。我喜歡首先設(shè)計這個 API:我找出在代碼中引用該函數(shù)的最佳方式。我希望它讀起來像這樣:

function thing_that_happens_in_my_plugin($post_id, $value){
    $updated = update_post_meta($post_id, $value);
    if ($updated){
        JaredsTools::show_admin_notice("Your thing has been updated")
    } else {
        JaredsTools::show_admin_notice("Error updating your thing", "error");
    }
}

一旦我設(shè)計了端點,我就可以滿足設(shè)計要求:

class JaredsTools {
    public static function show_admin_notice($message, $class = 'updated'){
        add_action('admin_notices', function() use ($message, $class){
            echo '<div class="'.$class.'"><p>'.$message.'</p></div>';
        });
    }
}

好多了!現(xiàn)在我不需要創(chuàng)建所有這些額外的函數(shù)或記住瘋狂的鉤子名稱。在這里,我使用 PHP 匿名函數(shù)(也稱為“閉包”),它讓我們可以將函數(shù)直接綁定到操作或過濾器。

這可以讓您避免在文件中出現(xiàn)大量額外的函數(shù)。 use 命令讓我們將參數(shù)從父函數(shù)傳遞到子閉包中。

保持直覺

現(xiàn)在另一位同事打電話給您。她不知道為什么她的管理通知沒有變成紅色:

JaredsTools::show_admin_notice("Error updating your thing", "red");

這是因為她正在發(fā)送“紅色”(她希望將盒子變成紅色),而實際上她應(yīng)該發(fā)送觸發(fā)紅色的名稱。但為什么不讓它變得更容易呢?

public static function show_notice( $message, $class = 'updated' ) {

    $class = trim( strtolower( $class ) );
    if ( 'yellow' == $class ) {
        $class = 'updated';
    }
    
    if ('red' == $class ) {
        $class = 'error';
    }
    
    add_action( 'admin_notices', function() use ( $text, $class ) {
        echo '<div class="'.$class.'"><p>' . $text . '</p></div>';
    });
}

我們現(xiàn)在已經(jīng)接受了更多的用戶容忍度,這將使我們在幾個月后回來使用它時更容易分享。


結(jié)論

在構(gòu)建了其中一些之后,以下是我學(xué)到的一些原則,這些原則使這些原則對我和我的團隊真正有用。

1.首先進行設(shè)計,讓函數(shù)的構(gòu)建符合人們想要使用它的方式。

2. 拯救你的鍵盤!為常見任務(wù)創(chuàng)建快捷方式。

3. 提供合理的默認(rèn)值。

4. 保持最小化。讓您的庫來處理處理。

5. 對輸入要寬容,對輸出要精確。

6. 也就是說,使用盡可能少的函數(shù)參數(shù),最多四個是一個很好的參數(shù)。之后,您應(yīng)該將其設(shè)為選項數(shù)組。

7. 將您的庫組織成單獨的類,以涵蓋不同的領(lǐng)域(管理、圖像、自定義帖子等)。

8. 包含示例代碼的文檔。

在 Upstatement,我們的 Timber 庫使構(gòu)建主題變得更加容易,而 Jigsaw 提供了節(jié)省時間的快捷方式來自定義每個安裝。

這些工具節(jié)省的時間讓我們可以花更多時間構(gòu)建每個網(wǎng)站或應(yīng)用程序的新的和創(chuàng)新的部分。通過執(zhí)行深奧的命令(例如向管理帖子表添加一列)并制作簡單的界面:我們公司的任何設(shè)計師或開發(fā)人員都可以使用與專業(yè) WordPress 開發(fā)人員相同的能力完全自定義每個網(wǎng)站。

? ??? WordPress ??: ??? API ? ????? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

??? ????
1601
29
PHP ????
1502
276
???
WordPress?? JavaScript ??? ????? ?? WordPress?? JavaScript ??? ????? ?? Jul 07, 2025 am 01:11 AM

JavaScript ??? ????? ?, ?? ? ???? ??? ???? WordPress ? ????? ??? ???? ? ????. 1. W3TotalCache, "Minify"???? ?? ??? ????? ??? CACHE ????? ??????. 2. FastvelocityMinify? ?? ?? ?? ????? ?????? ??? ? ??? ??????. 3. ?? ??? ??? ????? ??? JS ??? ???? ???? FTP? ?? ???????. ?? ?? ?? ???? ????? ?? ??? ?? ? ? ??? ??? ? ? ??? ??? ??? ????????.

?? ??? ????? ???? ???? ?? ?? ??? ????? ???? ???? ?? Jul 08, 2025 am 12:04 AM

?? ??? ???? ?? ???? ??? ????? ??? ?? ???? ???? ?? ?? ????. 1. ??? ??? ????? ???? ?? ?? ?? ???? (? : Googler Captcha ?? Hcaptcha)? ???? ?? ?? ? ???? ?????. 2. ??? ?? (Honeypot Technology)? ???? ??? ???? ??? ??? ??? ??? ?? ?? ??? ???? ?? ??? ???? ??????. 3. ?? ??? ???? ?????? ???? ??? ?? ??? ?? ?? ??? ????? ?? ??? ??? ????? ?????. 4. ??? ?? ? ?? IP? ???? ?? ??? ?? ?? ???? ?????? ??????. 5. Akismet, CloudFlare? ?? ?? ? ?? ???? ???? ?? ???? ??????. ? ???? ???? ? ? ????

Gutenberg ??? ??? ???? ?? Gutenberg ??? ??? ???? ?? Jul 09, 2025 am 12:14 AM

Gutenberg ??? ??? ? Enqueue Assets? ??? ???? ??? ?????. 1. Register_Block_type? ???? editor_script, editor_style ? style? ??? ?????. 2. functions.php ?? ????? wp_register_script ? wp_register_style? ?? ???? ???? ??? ??? ? ??? ??????. 3. ??? ?? ??? ????? ?? ??? ???? ??? ?????????. 4. Add_theme_support ?? enqueue_block_assets? ?? ??? ?? ????????? ???? ??? ?? ?????? ??? ????????.

??? ?? ? ?? ??? ???? ?? ??? ?? ? ?? ??? ???? ?? Jul 08, 2025 am 12:11 AM

WordPress?? ??? ?? ? ?? ??? ???? ??? add_rewrite_rule ??? ???? ??? ???? ????? ???? ????. 1. add_rewrite_rule? ???? ??? ??????. ??? add_rewrite_rule ($ regex, $ ridirect, $ after)???. ??? $ regex? ?? ??? ?? URL, $ redirect? ?? ??? ????, ? ??? ?????. 2. add_filter? ?? ??? ?? ?? ??? ???????. 3. ?? ? ?? ?? ??? ?? ???????. 4. ??? ??? ?? ??? '??'? ???? ?? ????. 5. ????? ???? ??? ?? ?? ??? ? ? ????.

WordPress Robots TXT? ????? ?? WordPress Robots TXT? ????? ?? Jul 13, 2025 am 12:37 AM

Robots.txt? WordPress ? ???? SEO? ???? ?? ??? ?????, ???? ?? ??? ???? ?? ???? ?? ??? ?? ? ? ????. 1. /wp-admin /? /wp-includes /? ?? ??? ??? /??? /????? ??? ???? ????. 2. Siteemap? ?? ??? ? ??? ?????? : https://yourdomain.com/sitemap.xml ?? ??? ??? ?? ??? ?? ? ? ??? ?????. 3. ??? ???? ??? ?? ?? ????? ?? / ??? / ? URL? ??? ???? ???? ???? ?????????. 4. ??? ?? ???? ???? ?? ????? ????? ??? ??? ??? ?? ? ?? ???? ??? ???? ?? ?? ???? ??? ?????.

WordPress ??? ?????? ?? WordPress ??? ?????? ?? Jul 07, 2025 am 12:43 AM

1. ?? ?? ????? ???? ??? ???? ?????. ?? ??, QueryMonitor? ?????? ?? ? PHP ?? ?? ? ? ??? BlackBoxProfiler? ?? ?? ???? ???? NewRelic? ?? ?? ??? ?????. 2. PHP ?? ??? ????? ??? ?? ??? ??? ???? XDEBUG? ?? ?? ?? ? ??? ??? ????? ???? ???? ?? ?? ???? ???????. 3. ?? ?? ?? ? ?? ??? ?? ?????? ?? ??? ???? ? ? ????. QueryMonitor? ?? SQL? ?? ? ? ????. 4. GooglePagesPeedInsights, GTMetrix ? WebPagetest? ?? ?? ??? ?? ?? ??? ??? ?????.

WordPress? ?? PHP ??? ?????? WordPress? ?? PHP ??? ?????? Jul 10, 2025 am 11:21 AM

WordPressRequiresatleastphp7.4, ??? 8.0oRhigherisrecemendedForBetTerformanceAndSecurity.olderversionsike5.6 areoutdated, supported, andposeSecurityRisks.usinguppimprovessecurity, EnhancesPercormance ? andensurescompatibility withmombernplplplplplplplplplplplplplplplplplplplplplplplplplply

Gutenberg?? Inspector Controls? ???? ?? Gutenberg?? Inspector Controls? ???? ?? Jul 12, 2025 am 12:16 AM

InspectorControls? Gutenberg ??? ???? ?? ?????. 1. @WordPress/Block-Editor ???? ????. 2. ?? ??, ??? ?? ? ?? ?? ??? ?? ?????. 3.?? ??? ?? ??? ??, ??? ??, ???, ???? ? ?? ???? ?? ?? ??? ???? ????? ???????. 4. ?? ?????? ???? ???? ???? ???? ???? ??? ???????.

See all articles