• 下記のような感じでスラッグ付きのタグで投稿したいと思っているのですが
    どうしてもうまくいきません。
    どのように記述したらご教授頂ければと思いますよろしくお願いします。

    $tags[] = new XML_RPC_Value(array(‘name’=> new XML_RPC_Value(‘あああ’,’string’),’slug’=> new XML_RPC_Value(“aaa”,’string’)),’struct’);
    $tags[] = new XML_RPC_Value(array(‘name’=> new XML_RPC_Value(‘いいい’,’string’),’slug’=> new XML_RPC_Value(“iii”,’string’)),’struct’);

    $wpContent = new XML_RPC_Value(
    array(
    ‘title’ => new XML_RPC_Value($post_name, ‘string’),
    ‘categories’ => new XML_RPC_Value($categories, ‘array’),
    ‘description’ => new XML_RPC_Value(“$description”, ‘string’),
    ‘mt_keywords’ => new XML_RPC_Value($tags, ‘array’),
    ‘custom_fields’=> new XML_RPC_Value($custom_fields,’struct’),
    ‘dateCreated’ => new XML_RPC_Value($dateCreated, ‘dateTime.iso8601’),
    ),
    ‘struct’
    );

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • こんにちは

    xmlrpc よくわかりませんが、以下のコードで 渡せるようです。

    <?php
    
    require_once("./wp-includes/class-IXR.php");
    
    $host		 = "http://";
    $base_uri	 = $host . "/xmlrpc.php";
    $USER		 = '';
    $PASS		 = '';
    
    $client = new IXR_Client( $base_uri );
    
    if ( !$client->query( 'wp.getCategories', '', $USER, $PASS ) ) {
    	echo( 'Error occured during category request.' . $client->getErrorCode() . ":" . $client->getErrorMessage() );
    }
    $cats = $client->getResponse();
    
    $content[ 'wp_slug' ]         = 'hello-mytest';
    $content[ 'title' ]           = 'Test title ';
    $content[ 'categories' ]      = $cats[ 0 ];
    $content[ 'description' ]     = '<p>Lorem ipsum dolor sit amet</p>';
    $content[ 'custom_fields' ]   = array( array( 'key' => 'my_custom_fied', 'value' => 'yes' ) );
    $content[ 'mt_keywords' ]     = array( 'foo', 'bar' );
    
    if ( !$client->query( 'metaWeblog.newPost', '', $USER, $PASS, $content, true ) ) {
    	die( 'Error while creating a new post' . $client->getErrorCode() . " : " . $client->getErrorMessage() );
    }
    $ID = $client->getResponse();
    
    if ( $ID ) {
    	echo 'Post published with ID:#' . $ID;
    }
    ?>
    トピック投稿者 yosakuyosaku

    (@yosakuyosaku)

    nobitaさんありがとうございます。
    上記のコードですが
    $content[ ‘mt_keywords’ ] = array( ‘foo’, ‘bar’ );
    でfooというタグとbarというタグが登録されるかと思いますが
    私の方で行いたいというのが
    タグのslugを指定して投稿したいというもので
    たとえば
    fooのスラッグがfoooo
    barのスラッグがbarrrrr
    とした場合どのように記述すればいいのかということです。
    説明の仕方が悪かったようで誤解させてしまいましたが
    ご存知でしたらご教授頂ければ思います。

    $content[ 'wp_slug' ]         = 'hello-mytest';

    で、スラッグをつけています。

    あっ、投稿のスラッグではなくて、タグのスラッグですかぁ、、、

    こんなの見つけましたけど、どうですか?

    https://github.com/fc2ist/wp.xmlrpc

    丸投げしてごめんなさい。よかったら結果教えてください。

    トピック投稿者 yosakuyosaku

    (@yosakuyosaku)

    ちょっとうまく動作しませんでした。
    カスタムフィールドも
    カテゴリも
    タグも
    動作が怪しい感じで
    例えばtag1というタグが既に投稿されていた場合
    投稿自体が失敗します。
    カスタムフィールドもうまく登録されません。
    classの中で配列を出力させてみてきちんとkey、valueの値も入ってるのをにダメでした。
    カテゴリは例の物をそのまま使っても登録できませんでした。
    他の方法があればそちらを試したいので他に何か情報がありましたら教えて頂ければと思います。

    class-wp-xmlrpc-server.php

    を、チラ見してみましたが、タグは、送信したデータを、配列に入れて

    wp_update_post()しているだけなので、タグのスラッグを変更することは、デフォルトでは難しいと思います。

    xmlrpc_call アクションで 例えば、wp_update_term()等で何とかなるのかは、???ですが、一度、アクションを試してみてはどうでしょうか?

    https://wordpress.org/support/topic/plugin-seo-slugs-setting-post-slug-when-posting-via-xml-rpc?replies=6

    トピック投稿者 yosakuyosaku

    (@yosakuyosaku)

    ありがとうございます。
    ちょうどいまwp_update_term()みたいなのを探してました!
    やってみます

    トピック投稿者 yosakuyosaku

    (@yosakuyosaku)

    結局、分からなかったのでタグだけ登録してあとは直接DBいじる仕様にしました・・・
    wp_term_relationshipsに新規データを挿入
    wp_term_taxonomyのcountをアップデート

    taerm_idを指定して記事投稿できる物があれば解決しそうなんですが見当たらなかったので諦めました(-_-;)

    $taxonomy_name = ‘a’;//新規登録、又は更新したいタクソノミー名
    $taxonomy_slug = ‘aaaa’;

    $terms = get_term_by(“name”, $taxonomy_name, ‘post_tag’);
    if(!$terms){
    $rs_term=wp_insert_term( “$taxonomy_name”, ‘post_tag’, array(‘slug’ => $taxonomy_slug));
    }
    delete_option($taxonomy_name.”_children”);

    なんとかなったんですね、良かったですね

    方法を共有してくれてありがとうございます

    トピック投稿者 yosakuyosaku

    (@yosakuyosaku)

    いえ、こちらこそ情報を頂けてなければ諦めてましたんで
    ありがとうございました!

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「xmlrpcでのタグのスラッグつき投稿について」には新たに返信することはできません。