WordPress.org

Make WordPress Core

Ticket #10388: custom-fields-rpc.diff

File custom-fields-rpc.diff, 1.9 KB (added by picklingjar, 5 years ago)
  • xmlrpc.php

    old new  
    154154                        'wp.editComment'                => 'this:wp_editComment', 
    155155                        'wp.newComment'                 => 'this:wp_newComment', 
    156156                        'wp.getCommentStatusList' => 'this:wp_getCommentStatusList', 
     157                        'wp.getPostIdFromCustomFields'  => 'this:wp_getPostIdFromCustomFields', 
    157158 
    158159                        // Blogger API 
    159160                        'blogger.getUsersBlogs' => 'this:blogger_getUsersBlogs', 
     
    15661567                //Now return the updated values 
    15671568                return $this->_getOptions($option_names); 
    15681569        } 
     1570 
     1571        /** 
     1572         * 
     1573         * Search for a post id with a custom field name and value 
     1574         * 
     1575         * @since 2.9.0 
     1576         * 
     1577         * @param array $args Methods parameters. 
     1578         * @return array 
     1579         */ 
     1580        function wp_getPostIdFromCustomFields($args){ 
     1581                global $wpdb; 
     1582                $this->escape( $args ); 
     1583 
     1584                $blog_id        = (int) $args[0]; 
     1585                $username       = $args[1]; 
     1586                $password       = $args[2]; 
     1587                $fieldname      = $args[3]; 
     1588                $fieldvalue     = $args[4]; 
     1589 
     1590                if ( !$user = $this->login($username, $password) ) { 
     1591                        return $this->error; 
     1592                } 
     1593 
     1594                if( !current_user_can( 'read_private_posts' ) ) 
     1595                        return new IXR_Error( 403, __( 'You are not allowed access to manage options on this blog.' ) ); 
     1596 
     1597                $postids = $wpdb->get_results( $wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = %s AND meta_value = %s", $fieldname, $fieldvalue) ); 
     1598                if (!$postids) { 
     1599                        return array(); 
     1600                } 
     1601                else { 
     1602                        return($postids); 
     1603                } 
     1604        } 
     1605 
    15691606 
    15701607        /* Blogger API functions. 
    15711608         * specs on http://plant.blogger.com/api and http://groups.yahoo.com/group/bloggerDev/