サポート » 使い方全般 » 新規投稿画面で入力したタグを本文へ(wp_get_post_tags)

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • kurosquare

    (@kurosquare)

    あくまで参考なのですが、global $post;を使うのではなくて、関数に引数で渡すほうが良い気がします。

    function kansuu($post_ID)
    のような。

    uueiwo8292adfjkhadsf

    (@uueiwo8292adfjkhadsf)

    kurosquareさん
    ご回答ありがとうございます。

    実は最初にご教示いただいた形

    function kansuu($post_ID)

    で書いていたところ、wp_update_postのほうでエラーが出てしまい
    http://ja.forums.wordpress.org/topic/12324?replies=3

    おはずかしながらこちらでお世話になっていた次第です^^;
    3.1.4の細かなバグなのかもしれません・・・

    その他気になる点がありましたら是非書き込みをお願いいたします。

    uueiwo8292adfjkhadsf

    (@uueiwo8292adfjkhadsf)

    その後wp_get_post_tagsの返す値がstdクラスオブジェクトという
    形なのを知らずその処理を加えてソースを書いてみましたが
    うまくいきませんでした。

    【ソース】
    add_action(‘publish_post’, ‘kansuu’);
    function kansuu() {
    global $post;

    function stdclass_to_array($objDATA) {
    $arrayDATA = (array) $objDATA;
    $arrayKeys = array_keys($arrayDATA);
    $intCount = count($arrayKeys);
    for($i=0;$i<$intCount;$i++){
    $arrayDATA[$arrayKeys[$i]] = (array) $arrayDATA[$arrayKeys[$i]];
    }
    return $arrayDATA;
    }

    $objCategory = get_the_tags($post->ID);
    $arrMember = stdclass_to_array($objCategory);//この時点で配列として$arrMemberの中に格納

    //$arrMemberに入っているのはタグの説明なども含む多次元配列なので名前を取り出す関数
    function mk_target_col($arrList, $target){
    $arrTarget = array();
    foreach($arrList as $arrLine){
    foreach($arrLine as $key => $value){
    if($key == $target){
    $arrTarget[] = $value;
    }
    }
    }
    return $arrTarget;
    }

    //関数の実行
    $oneself_tags = mk_target_col($arrMember, “name”);

    $my_post = array();
    $my_post[‘ID’] = $post->ID;
    $my_post[‘post_content’] = $oneself_tags;
    wp_update_post( $my_post );
    }

    【実行結果】
    Array

    何か気になる点がありましたらご指摘ください。
    よろしくお願いします。

    uueiwo8292adfjkhadsf

    (@uueiwo8292adfjkhadsf)

    今回は別のデータをあてがうという打開策で対応しましたので
    質問を一旦締め切らせていただきます。
    貴重なスペースありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「新規投稿画面で入力したタグを本文へ(wp_get_post_tags)」には新たに返信することはできません。