Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




plugins_api [ WordPress Function ]

plugins_api ( $action, $args = null )
Parameters:
  • (string) $action
  • (array|object) $args Optional. Arguments to serialize for the Plugin Info API.
Returns:
  • (object) plugins_api response object on success, WP_Error on failure.
Defined at:



Retrieve plugin installer pages from WordPress Plugins API.

It is possible for a plugin to override the Plugin API result with three filters. Assume this is for plugins, which can extend on the Plugin Info to offer more choices. This is very powerful and must be used with care, when overriding the filters.

The first filter, 'plugins_api_args', is for the args and gives the action as the second parameter. The hook for 'plugins_api_args' must ensure that an object is returned.

The second filter, 'plugins_api', is the result that would be returned.

Source


<?php
function plugins_api($action$args null) {

    if ( 
is_array($args) )
        
$args = (object)$args;

    if ( !isset(
$args->per_page) )
        
$args->per_page 24;

    
// Allows a plugin to override the WordPress.org API entirely.
    // Use the filter 'plugins_api_result' to merely add results.
    // Please ensure that a object is returned from the following filters.
    
$args apply_filters('plugins_api_args'$args$action);
    
$res apply_filters('plugins_api'false$action$args);

    if ( 
false === $res ) {
        
$request wp_remote_post('http://api.wordpress.org/plugins/info/1.0/', array( 'timeout' => 15'body' => array('action' => $action'request' => serialize($args))) );
        if ( 
is_wp_error($request) ) {
            
$res = new WP_Error('plugins_api_failed'__'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="http://wordpress.org/support/">support forums</a>.' ), $request->get_error_message() );
        } else {
            
$res maybe_unserializewp_remote_retrieve_body$request ) );
            if ( ! 
is_object$res ) && ! is_array$res ) )
                
$res = new WP_Error('plugins_api_failed'__'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="http://wordpress.org/support/">support forums</a>.' ), wp_remote_retrieve_body$request ) );
        }
    } elseif ( !
is_wp_error($res) ) {
        
$res->external true;
    }

    return 
apply_filters('plugins_api_result'$res$action$args);
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

Gebruikersdiscussies [ wordpress.org ]

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics