サポート » 使い方全般 » ランダムなパーマリンクが、プラグインに適用されずに困っています

  • 「WP User Frontend」というプラグインによって、誰でも投稿できる状態にしています。

    その投稿パーマリンクをランダムにするためにfunctions.php次のように書いているのですが、なぜかランダムになってくれません。

    /**
     * ▼参考記事
     * http://wald-grun.biz/blog/wp/3822/
     */
    add_filter('sanitize_title','sanitize_title_numalpha_only',9);
    function sanitize_title_numalpha_only($title) {
        if(mb_strlen($title) == strlen($title)){
            return $title;//2バイト文字が含まれていない場合はそのまま値を返す
        }else{
            return makeRandStr(16);//2バイト文字が含まれていたら乱数を出力
        }
    }
    /**
     * ランダム文字列生成 (英数字)
     * $length: 生成する文字数
     */
    function makeRandStr($length) {
        $str = array_merge(range('a', 'z'), range('0', '9'), range('A', 'Z"'));
        $r_str = null;
        for ($i = 0; $i < $length; $i++) {
            $r_str .= $str[rand(0, count($str))];
        }
        return $r_str;
    }

    上述のプラグインを通さず、投稿画面から投稿すればランダムになるのですが。なんとかプラグインを通した投稿でもランダムになるようにできませんでしょうか?

    宜しくお願い致します。

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

    wpuf_add_post_args フィルターフックで変更できそうです。

    function my_wpuf_update_post_args( $postarr, $form_id ) {
    	if ( /* $form_id == 123 && */ isset( $postarr['post_title'] ) ) {
    		if ( mb_strlen( $postarr['post_title'] ) != strlen( $postarr['post_title'] ) ) {
    			$postarr['post_title'] = makeRandStr( 16 );
    		}
    	}
    	return $postarr;
    }
    
    add_filter( 'wpuf_add_post_args', 'my_wpuf_update_post_args', 10, 2 );
    // add_filter( 'wpuf_update_post_args', 'my_wpuf_update_post_args', 10, 2 );

    ありがとうございます。
    すみません、どのあたりをご提示のコードに変更すればよろしいのでしょうか?
    完全初心者で、フィルターフックなどの意味もよくわかっていない状態でして。。
    たびたび申し訳ございません。

    functions.php 等に追記してください。
    また、提示のコードでは makeRandStr 関数を使用しているので、@meijinochoco さんの提示コードのmakeRandStr 関数(function makeRandStr($length) {…})も記述しておいてください。

    • この返信は3 ヶ月、 3 週間前に  ishitaka さんが編集しました。理由: 誤記

    私のコードはfunctions.phpに書いてありまして、その下に追記するわけですよね?

    …あ!すみません。できました!ありがとうございます。やった!

    最後にもう1つだけ教えて頂いてもよろしいでしょうか?
    夜分になんども申し訳ございません。もちろん明日で結構です。

    今回の「私のコード」+「教えて頂いたコード」でできたのは「タイトルつきの投稿の場合」なのですが、「タイトルなしの投稿の場合」にも、同じようにランダムなパーマリンクが登録されるような書き方はございますでしょうか?

    お手すきの折りに、何卒よろしくお願い致します。

    「タイトルなしの投稿の場合」は、タイトル フィールドを非表示(Hidden)に設定して、下記のように変更するのではどうでしょうか。

    function my_wpuf_update_post_args( $postarr, $form_id ) {
    	if ( /* $form_id == 123 && */ isset( $postarr['post_title'] ) ) {
    		if ( $postarr['post_title'] == '' || mb_strlen( $postarr['post_title'] ) != strlen( $postarr['post_title'] ) ) {
    			$postarr['post_title'] = makeRandStr( 16 );
    		}
    	}
    	return $postarr;
    }
    
    add_filter( 'wpuf_add_post_args', 'my_wpuf_update_post_args', 10, 2 );
    // add_filter( 'wpuf_update_post_args', 'my_wpuf_update_post_args', 10, 2 );

    はやすぎます!やさしすぎます!!笑

    [モデレーター編集: 本題と無関係の動画添付を削除]

    よい年末をお過ごしくださいませ。

    夜分に誠にありがとうございます★

    • この返信は3 ヶ月、 3 週間前に  Takayuki Miyoshi さんが編集しました。理由: 本題と無関係の動画添付を削除

    その動画は著作権上問題のある同人作品を動画化したものですよね。
    そのような、かつWordPressと無関係な動画を張るのは遠慮していただけないでしょうか。

    ご不快な思いをさせてしまったことお詫びします。

    ご指摘ありがとうございます。
    投稿の編集はどちらからすればいいのでしょうか?

    ishitakaさんの2回目の返信の「○分前」をクリックすると、「編集しました」という表示があるので、編集方法はあるのかなと思うのですが、、わかりません。

    たびたびお手数おかけして大変もうしわけございませんが、ご教示いただけませんでしょうか?

    時間が経過すると編集できなくなるようです。
    モデレータの方が編集してくれるかもしれません。
    私は別に不快ではありませんが、このフォーラムにふさわしくない動画だと思うだけです。

    それは、、余計な手間をかけさせてしまいそうですね。ご忠告、肝に銘じておきます。それではよい年末を。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • このトピックに返信するにはログインが必要です。