• 解決済 asx@

    (@asx-1)


    はじめまして。
    asx@といいます。サイト制作を始めたばかりの初心者です。

    function.phpに下記の記述を貼り付けました。

    <?php
    function otocon_autoAssignTags( $post_id ) {
    global $post;
    $new_post = get_post( $post_id );
    $title = $new_post->post_title;
    if ( stripos( $title, ‘タイトル 1章’ ) !== false ) {
    wp_set_object_terms( $post_id, ‘タイトル 1章’, ‘post_tag’, true );
    }
    }
    add_action( ‘save_post’, ‘otocon_autoAssignTags’ );
    ?>

    これで投稿記事のタイトルに「タイトル 1章」というも文字がある場合に「タイトル 1章」というタグを付けることができました。

    この記述を

    「タイトル 1章」のときは「タイトル 1章」
    「タイトル 2章」のときは「タイトル 2章」
    「タイトル 3章」のときは「タイトル 3章」

    と、いうように指定した数まで繰り返し処理したいのですが、
    どうしたらよいのでしょうか?

    また、自分はphpがまったくわかっていない素人です。
    素人なりにfor文とwhile文というのをやってみたのですがうまく機能しません。

    よろしくお願いします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • nobita

    (@nobita)

    こんにちは

    書き方はいろいろだと思いますが、

    例1

    function otocon_autoAssignTags( $post_id ) {
    	global $post;
    	$new_post = get_post( $post_id );
    	$title    = $new_post->post_title;
    
    	if ( stripos( $title, 'タイトル 1章' ) !== false ) {
    		wp_set_object_terms( $post_id, 'タイトル 1章', 'post_tag', true );
    	}
    	if ( stripos( $title, 'タイトル 2章' ) !== false ) {
    		wp_set_object_terms( $post_id, 'タイトル 2章', 'post_tag', true );
    	}
    	if ( stripos( $title, 'タイトル 3章' ) !== false ) {
    		wp_set_object_terms( $post_id, 'タイトル 3章', 'post_tag', true );
    	}
    
    }

    forを使った例

    function otocon_autoAssignTags( $post_id ) {
    	global $post;
    	$new_post = get_post( $post_id );
    	$title    = $new_post->post_title;
    
    	for( $i = 1; $i <= 3; $i++ ){
    
    		if ( stripos( $title, 'タイトル '. $i.'章' ) !== false ) {	
    
    			wp_set_object_terms( $post_id, 'タイトル '. $i. '章', 'post_tag', true );
    
    		}
    	}
    }

    どちらでも、結果は同じになると思います。(同じ関数名は2個使う事が出来ないので、必ずどちらか一つづつ試してみてください

    add_action( 'save_post', 'otocon_autoAssignTags' );
    トピック投稿者 asx@

    (@asx-1)

    ありがとうございます!
    早速、試してみます。

    トピック投稿者 asx@

    (@asx-1)

    <?php
    ffunction otocon_autoAssignTags( $post_id ) {
    global $post;
    $new_post = get_post( $post_id );
    $title = $new_post->post_title;

    for( $i = 1; $i <= 3; $i++ ){

    if ( stripos( $title, ‘タイトル ’. $i.’章’ ) !== false ) {

    wp_set_object_terms( $post_id, ‘タイトル ’. $i. ‘章’, ‘post_tag’, true );

    }
    }
    }
    add_action( ‘save_post’, ‘otocon_autoAssignTags’ );
    ?>

    こちらを記述してみたのですが、うまく動作しませんでした。

    nobita

    (@nobita)

    早速、ダメだしいただいたので、試してみましたが、

    Twentyeleven functions.phpの先頭に記述して、

    こちらでは動くんですが、、、

    エラーでも出ていれば、書き込んでみてください

    トピック投稿者 asx@

    (@asx-1)

    すみません!!m(_ _)m
    自分の記述間違いでした!!

    上記の記述で、問題なく動作しました!

    ありがとうございます!
    とても助かりました。

    また、わからないことがでてきましたら是非ご質問させてください!

    本当に助かりました!

5件の返信を表示中 - 1 - 5件目 (全5件中)

トピック「自動タグ付けの繰り返し処理ができません」には新たに返信することはできません。