wp.getPage ist obsolte. Du verwendest nur wp.getPost. Die Post ID gehört nicht in das array.
Folgende Funktion kannst Du in die functions.php werfen:
function mmx_xmlrpx_get_post( $attr ) {
extract( shortcode_atts( array(
'url' => '',
'blog' => '',
'user' => '',
'pw' => '',
'id' => ''
), $attr) );
if ( empty( $user ) || empty( $pw ) || empty( $url ) || empty( $id ) || empty( $blog ) ) {
return 'keine Parameter angegeben';
}
require ABSPATH . WPINC . "/class-IXR.php";
require ABSPATH . WPINC . "/class-wp-http-ixr-client.php";
$rpc = new WP_HTTP_IXR_Client( $url . "/xmlrpc.php" );
$post = $rpc->query( 'wp.getPost', $blog, $user, $pw, $id );
if( !$post ) {
print "fehler ( " . $rpc->getErrorCode( ) . " ) : ";
print $rpc->getErrorMessage( ) . "\n";
exit;
}
$data = $rpc->getResponse( );
$output = '<pre>' . print_r( $data, true ) . '</pre>';
return $output;
}
add_shortcode('getpost', 'mmx_xmlrpx_get_post');
Alles anzeigen
In einer Seite oder einem Beitrag kannst Du dann folgenden Shortcode nutzen:
[getpost url="" user="" pw="" blog="" id =""]
url = Die volle Adresse (inkl. http/https) der WP Installation von der Du die Inhalte abholen willst
user = der Benutzer der ausreichend Rechte hat um den Inhalt zu lesen
pw = das Passwort dieses Benutzers
blog = die ID des Blogs. Bei Einzelinstallationen ist das 0 (Null)
id = die Page/Post ID
Code habe ich auf die schnelle geschrieben, tut aber was er soll und sollte als Blaupause ausreichen.