フォーラムへの返信

15件の返信を表示中 - 76 - 90件目 (全94件中)
  • フォーラム: 使い方全般
    返信が含まれるトピック: フロント側からアイキャッチ画像を削除したい。
    トピック投稿者 d.w.c

    (@dwc-1)

    コードも考えていただいてありがとうございます!
    すぐに返信したつもりだったのですが投稿できていませんでした、すみません。
    説明が言葉足らずだったので追記させていただきます。

    現状ではabcというカスタム投稿タイプの、custom_imgというカスタムフィールドにアップロードした画像を公開時に自動で読み込んでアイキャッチに設定するようになっています。
    これはプラグインではなく、functions.phpにコードを記述しています。
    ただこの状態だと一度custom_imgに画像を設定して更新すると、その後custum_imgの画像を変更してもアイキャッチは最初のものから変わらないようです。

    なので、abcというカスタム投稿タイプが更新されるたびに「現在のアイキャッチを削除→custum_imgの画像をアイキャッチに設定」という流れが自動で起きるようにしたいのです。
    これは可能でしょうか?

    フォーラム: 使い方全般
    返信が含まれるトピック: フロント側からアイキャッチ画像を削除したい。
    トピック投稿者 d.w.c

    (@dwc-1)

    非表示ではなく、削除が必要です。
    アイキャッチを再登録するために前の写真を消すという意味です。

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタム投稿でアイキャッチがいじれなくなった
    トピック投稿者 d.w.c

    (@dwc-1)

    返信ありがとうございます。

    表示オプションの中から「アイキャッチ画像」が消えています。

    • この返信は7年、 11ヶ月前にd.w.cが編集しました。
    トピック投稿者 d.w.c

    (@dwc-1)

    WordPress Serialized PHP Search Replace Toolを使用したら無事に使用できるようになりました!
    ありがとうございます。

    トピック投稿者 d.w.c

    (@dwc-1)

    ありがとうございます。
    提示情報が足りていませんでした、申し訳ありません。

    カスタム投稿「contact_form」
    カスタムフィールド「acf-send-name」
    で以下のように書き換えてみましたが、動作結果は変わりませんでした。

    add_filter('query_vars', function($vars){
        array_push($vars, 'acf-send-name');
        return $vars;
    });
    
    add_action('restrict_manage_posts', function(){
     $args = array(
    	'meta_key'=>'acf-send-name',
    	'post_type'=> get_post_type('contact_form')
       );
       $posts = get_posts($args);
        $selected = array();
        $selected[esc_attr($_GET['acf-send-name'])] = 'selected';
        printf('<label class="screen-reader-text" for="acf-send-name">%s</label>', __( 'Filter by acf-send-name (Custom Field)' ));
        printf('<select id="filter-by-acf-send-name" name="acf-send-name">');
        printf('<option value="0">%s</option>', __('すべての送信先'));
    
        global $post;
        foreach ($posts as $post){
            setup_postdata($post);
            $value = get_post_meta($post->ID, 'acf-send-name', true);
    	printf("<option value='%s' %s>%s</option>", esc_html($value), $selected[$value], esc_html($value));
        }
    
       wp_reset_postdata();
    
        printf('</select>');
    
    });
    
    add_filter('posts_where', function( $where ) {
        global $wpdb;
        if ( !is_admin() )
            return $where;
        $value = get_query_var('acf-send-name');
        if ( !empty($value) ) {
            $where .= $wpdb->prepare("
                 AND EXISTS (
                 SELECT 'x'
                 FROM {$wpdb->postmeta} as m
                 WHERE m.post_id = {$wpdb->posts}.ID
                 AND m.meta_key = 'acf-send-name'
                 AND m.meta_value like %s
                )",
                "%{$value}%"
            );
        }
        return $where;
    });
    トピック投稿者 d.w.c

    (@dwc-1)

    返信が大変遅くなりまして申し訳ありません。
    カスタムフィールド名を「acf-send-name」というものに差し替えました。

    プルダウンのボックスが出るところまではできたのですが、中身が「全ての送信先」だけで、foreach文がうまく機能していないようです。

    add_filter('query_vars', function($vars){
        array_push($vars, 'acf-send-name');
        return $vars;
    });
    
    add_action('restrict_manage_posts', function(){
       $posts = get_posts(array('meta_key'=>'acf-send-name'));
        $selected = array();
        $selected[esc_attr($_GET['acf-send-name'])] = 'selected';
        printf('<label class="screen-reader-text" for="acf-send-name">%s</label>', __( 'Filter by acf-send-name (Custom Field)' ));
        printf('<select id="filter-by-acf-send-name" name="acf-send-name">');
        printf('<option value="0">%s</option>', __('すべての送信先'));
    
        global $post;
        foreach ($posts as $post){
            setup_postdata($post);
            $value = get_post_meta($post->ID, 'acf-send-name', true);
    	printf("<option value='%s' %s>%s</option>", esc_html($value), $selected[$value], esc_html($value));
        }
    
       wp_reset_postdata();
    
        printf('</select>');
    
    });
    
    add_filter('posts_where', function( $where ) {
        global $wpdb;
        if ( !is_admin() )
            return $where;
        $value = get_query_var('acf-send-name');
        if ( !empty($value) ) {
            $where .= $wpdb->prepare("
                 AND EXISTS (
                 SELECT 'x'
                 FROM {$wpdb->postmeta} as m
                 WHERE m.post_id = {$wpdb->posts}.ID
                 AND m.meta_key = 'acf-send-name'
                 AND m.meta_value like %s
                )",
                "%{$value}%"
            );
        }
        return $where;
    });

    カスタムフィールド名にハイフンがあるのがダメなのかと思って「answer」というカスタムフィールドを作ってみたんですが、それでもだめでした。

    トピック投稿者 d.w.c

    (@dwc-1)

    >kimipoohさん
    ありがとうございます。

    管理画面の投稿一覧にカスタムフィールドの値での絞り込み検索を追加する
    の方ですが、使用すると一応検索はできるようにはなるのですが、まずい点が2つ出てきます。

    1つは、検索窓の位置が「絞り込み検索」のボタンの後ろに来てしまう点です。
    [日付] [投稿者] 【絞り込み検索(ボタン)】 [カスタムフィールド]
    わかりにくいですが、上記のような配置になります。

    2つめは、候補がプルダウンで出てこない点です。
    管理画面の投稿ページに作成者による絞り込み項目を追加する方法
    ではforeachで取得した検索対象の項目がプルダウンで表示されるようになっているのですが、参考にさせていただいた方法の場合はinput形式になってしまっています。
    これをどのように書き換えてforeachを組み込んでいいのかよくわかりません・・・

    カスタムフィールドを検索対象に含める
    については、プラグインのSearch Everythingを載せているのでここに書かれていることはすでに対応できているはずです。

    調べた中では
    WordPress管理画面の絞り込み検索をカスタマイズする
    の中の
    カスタムフィールドで絞り込み検索する場合の例

    カスタム投稿を {my-post-type} 、カスタムフィールドを {gender} とすると、
    
    add_action('restrict_manage_posts', 'restrict_listings_by_gender');
    function restrict_listings_by_gender() {
     global $typenow;
     $selected = array();
     if ($typenow == '{my-post-type}') {
      echo '<select name="filter_gender">';
      echo '<option value="">すべての性別</option>';
      $selected[$_GET['filter_gender']] = 'selected';
      echo '<option value="male" '. $selected["male"] . '>男</option>';
      echo '<option value="female" '. $selected["female"] . '>女</option>';
      echo '</select>';
     }
    }
    add_filter('parse_query', 'gender_query');
    function gender_query($query) {
     global $pagenow;
     global $typenow;
     if ($pagenow == 'edit.php' && $typenow == '{my-post-type}' && $_GET['filter_gender']) {
      $query->query_vars[ 'meta_key' ] = '{gender}';
      $query->query_vars[ 'meta_value' ] = $_GET['filter_gender'];
     }
     return $query;
    }

    が近いのかなとは思うのですが、うまいこと使える形に修正できませんでした。

    トピック投稿者 d.w.c

    (@dwc-1)

    大変遅くなりました。
    下記のように記述して、動作を確認できました。ありがとうございました。

    <?php if(!empty($_GET['post_id'])):
    $id = $_GET['id'];
    $author_name = $_GET['name'];
    $author_mail = $_GET['mail'];
    ?>
    
    <script type="text/javascript">
    jQuery(document).ready(function($){
    	var set_value = function(input_id, input_val) {
    		if ($('#' + input_id).val() != '') {
    			return;
    		}
    		$('#' + input_id).val(input_val);
    	}
    set_value('acf-field_578862a57387d', "<?php echo $author_name; ?>"); //送信先名
    set_value('acf-field_5788626a7387c', "<?php echo $author_mail; ?>"); //送信先アドレス
    });
    </script>
    <?php endif; ?>
    トピック投稿者 d.w.c

    (@dwc-1)

    kimipoohさん、jdbbさん、ありがとうございます!

    <script type="text/javascript">
    jQuery(document).ready(function($){
      var set_value = function(input_id, input_val) {
        if ($('#' + input_id).val() != '') {
          return;
        }
        $('#' + input_id).val(input_val);
      }
      set_value('acf-field_577b00716e88e', 'あいうえお');
    });
    </script>

    とやったところ、「あいうえお」と入力することができました。
    if文との組み合わせはこれから試しますが、とりあえずのお礼とご報告です。

    トピック投稿者 d.w.c

    (@dwc-1)

    ありがとうございます!!

    とりあえずテキストフォームに設定したい文字列をセットできるかのテストとして、if文なしでこのように記述してみました。
    記述場所はメールフォームを呼び出した<?php acf_form ?>のすぐ下です。

    <script type="text/javascript">
    jQuery(document).ready(function($){
      var set_value = function(input_id, input_val) {
        if ($('#' + id).val() != '') {
          return;
        }
        $('#' + id).val(input_val);
      }
      set_value(acf-field_577b00716e88e, あいうえお);
    });
    </script>

    しかし、この状態ではフォームのテキストエリア内に「あいうえお」の文字をセットすることはできませんでした。

    そもそもやり方が間違っていますか?

    あと、acfのサイトで「value」で検索をかけたら下記のようなものが出てきました。
    これは今回の件に関係しているものでしょうか?
    acf/format_value
    acf/validate_value

    トピック投稿者 d.w.c

    (@dwc-1)

    https://www.advancedcustomfields.com/resources/acf_form/
    このページのJavascriptの項目に

    <script type="text/javascript">
    (function($) {
    
    	// setup fields
    	acf.do_action('append', $('#popup-id'));
    
    })(jQuery);
    </script>

    というのがあったんですが、これを何とかすればいいんでしょうか?

    トピック投稿者 d.w.c

    (@dwc-1)

    >jdbbさん

    はい、acfのフロントエンドフォームを利用したメール送信を自作しています。
    JEでの設定はやったことがないので試してみます。
    ただ、具体的にどういう処理を試せばいいのか想像がつかないので、もしよろしければ似たようなことを紹介しているURLを教えていただけませんでしょうか?

    トピック投稿者 d.w.c

    (@dwc-1)

    販売元に聞きたいのは山々なんですが、自分には言葉の壁が随分と高いのでどなたか日本語が通じる方で知っている人はいないかなと淡い望みをかけてこちらに書いてみました。
    無料版でも同じことはできるはずだと思ったのもあります。

    でも・・・やっぱり他のプラグインに頼るしかないんでしょうかね・・・

    トピック投稿者 d.w.c

    (@dwc-1)

    ちなみに、ACF Proです。

    フォーラム: 使い方全般
    返信が含まれるトピック: WordPress User Frontendのショートコードについて

    似たようなものにはまりました。
    自分は[wpuf_edit]を記載したページを作っても
    I don’t know how to edit this post, I don’t have the form ID
    と記載されるだけで編集ができなかったのですが、オフィシャルページの動画をじっくり見てみたら間違っていた箇所がわかりました。

    [wpuf_dashboard]などのショートコードはもともと使用できていたので、状況が違うかもしれませんが…
    一度お試しください。

    https://wordpress.org/plugins/wp-user-frontend/installation/

15件の返信を表示中 - 76 - 90件目 (全94件中)