WordPress.org

Make WordPress Core

Ticket #10388: custom-fields-rpc.diff

File custom-fields-rpc.diff, 1.9 KB (added by picklingjar, 9 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/