フォーラムへの返信

15件の返信を表示中 - 1 - 15件目 (全306件中)
  • @no23h さま

    お世話になります。私の場合phpは一気に書いてしまうほうなのですが
    基本は下記で表示できるかと思います。

    固定ページ側のアクションが文面から読めなかったので
    コード下方の表示など、変更ください。

    私の環境で動作確認はしておりますが
    動かない場合などあるかと思いますが、ご了承ください。

    よろしくお願いいたします。

    参考:
    https://www.advancedcustomfields.com/resources/how-to-get-values-from-a-user/

    関数リファレンス/get users

    
    <?php
    
    //reset
    $profile_dp1 = array();
    $profile_dp2 = array();
    $profile_dp3 = array();
    $profile_dp1_list = '';
    $profile_dp2_list = '';
    $profile_dp3_list = '';
    
    //get
     $args = array(
    	'blog_id'      => $GLOBALS['blog_id'],
    	'role'         => '',
    	'meta_key'     => '',
    	'meta_value'   => '',
    	'meta_compare' => '',
    	'meta_query'   => array(),
    	'date_query'   => array(),
    	'include'      => array(),
    	'exclude'      => array(),
    	'orderby'      => 'ID',
    	'order'        => 'ASC',
    	'offset'       => '',
    	'search'       => '',
    	'number'       => '',
    	'count_total'  => false,
    	'fields'       => 'all',
    	'who'          => ''
     );
    
    //配列で全ユーザーを取得
    $users = get_users($args);
    
    if(!empty($users)): //ユーザーを取得したとき
    
      foreach($users as $user_array ):
        //reset
        $user_dataArray = array();
        $user_id        = '';
        $user_dspName   = '';
        $user_desc      = '';
        $user_dep       = '';
        $user_labo      = '';
        $user_thumb     = '';
      
        //get
        $user_dataArray = $user_array -> data;//USER_data_array
        $user_id        = $user_array -> ID;//USER_ID
        $user_dspName   = $user_dataArray -> display_name;//USER_data_array
        $user_desc      = $user_array -> description;//USER_Description
        $user_dep       = get_field('users_department', 'user_'.$user_id);//カスタムフィールド「配属学科名」
        $user_labo      = get_field('users_labo', 'user_'.$user_id);//カスタムフィールド「?」
        $user_thumb     = get_avatar( $user_id ,300 );
        
        if(!empty($user_dep))://「配属学科名」が未入力ならイレギュラー処理を回避
        
          if($user_dep == 'dep1' ):
          
            $profile_dp1[] = 
            
            '<div class="author-profile">'.PHP_EOL.
            '  <p class="author-thumbanil">' .$user_thumb. '</p>'.PHP_EOL.
            '  <p class="author-name">' .esc_html($user_dspName).  '</p>'.PHP_EOL.
            '  <p class="author-description">' .esc_html($user_desc).  '</p>'.PHP_EOL.
            '  <p>' .$user_labo.  '</p>'.PHP_EOL.
            '</div><!-- /.author-profile -->'.PHP_EOL.PHP_EOL;
            
          
          
          elseif($user_dep == 'dep2' ):
          
            $profile_dp2[] = 
            
            '<div class="author-profile">'.PHP_EOL.
            '  <p class="author-thumbanil">' .$user_thumb. '</p>'.PHP_EOL.
            '  <p class="author-name">' .esc_html($user_dspName).  '</p>'.PHP_EOL.
            '  <p class="author-description">' .esc_html($user_desc).  '</p>'.PHP_EOL.
            '  <p>' .$user_labo.  '</p>'.PHP_EOL.
            '</div><!-- /.author-profile -->'.PHP_EOL.PHP_EOL;
          
          
          
          elseif($user_dep == 'dep3'):
          
            $profile_dp3[] = 
            
            '<div class="author-profile">'.PHP_EOL.
            '  <p class="author-thumbanil">' .$user_thumb. '</p>'.PHP_EOL.
            '  <p class="author-name">' .esc_html($user_dspName).  '</p>'.PHP_EOL.
            '  <p class="author-description">' .esc_html($user_desc).  '</p>'.PHP_EOL.
            '  <p>' .$user_labo.  '</p>'.PHP_EOL.
            '</div><!-- /.author-profile -->'.PHP_EOL.PHP_EOL;
          
          endif;
          
        
        endif;//end $user_dep
    
      endforeach;
      
      
      if(!empty($profile_dp1)):
        $profile_dp1_list = implode('', $profile_dp1 );//「dp1」配列データを連結させる
      endif;
      
      if(!empty($profile_dp2)):
        $profile_dp2_list = implode('', $profile_dp2 );//「dp2」配列データを連結させる
      endif;
      
      if(!empty($profile_dp3)):
        $profile_dp3_list = implode('', $profile_dp3 );//「dp3」配列データを連結させる
      endif;
    
    endif;// END $users
    
    //使いかた
    //dp1を表示させたい場合
    
    echo $profile_dp1_list;
    
    //ページにカスタムフィールドを設置して照合させる場合は
    
    /*
    
    if( (get_field('field_name') == 'dp1') && (!empty($profile_dp1)) ):
    
      echo $profile_dp1_list;
    
    elseif((get_field('field_name') == 'dp2') && (!empty($profile_dp2))):
    
     echo $profile_dp2_list;
    
    elseif((get_field('field_name') == 'dp3') && (!empty($profile_dp3))):
    
     echo $profile_dp3_list;
    
    else:
    
     echo '<p>該当する教員はいません。</p>';
    
    endif;
    
    */
    
    ?>
    
    

    @ounziw

    ご回答ありがとうございました。
    色々試してみたのですが、ログイン情報の取得ができませんでした。

    色々とありがとうございました。

    @stellanova99 さま

    遅くなってしまって、すみません。
    何回かに分けて返信いたします。

    基本的には、商品「ハム」に取り扱い店舗のこ分類を選択出来るようにしたい!
    →その結果ハムの店舗リストにリンクをつけたい

    つまり、ハムを持っている○○店全て表示

    ここでの考え方は、「に実店舗で商品を仕入れた」=トリガーと考えるのがUI的かなと思いますので
    ○○店は
    在庫:ハム
    所属:店舗A
           となります。
    ですので、〇〇店でハムを選択出来るようにするのが良いと思います。

    そうなるとCMS上のUIとしては〇〇店に商品を選択するUIが必要で、かつ複数選択かなと思います。
    カスタム投稿タイプ「stores」にACFの関連を設置します。
    関連を複数の投稿を選択できますので「ハム」と「ベーコン」と・・・・みたいな感じで仕入れをするアクションになります。

    これで店舗Aは(仮)カスタムフィールド:在庫にハムが入っています。
    →カスタムフィールド内にハムの「$post->ID」が格納されました※戻り値をIDに設定してください

    では、商品側で考えてみます。
    現在、ハムは〇〇店によってフィールド在庫の中に格納されています。

    つまり、カスタムフィールド「在庫」を現在の投稿IDでクエリーソートを掛ければ
    「ハムを持っているお店一覧を配列で取得」をすることが可能になります。

    テストはしていませんが

    
    $post_id = $post->ID;
    $args = array(
    	'post_type' => 'stores',
    	'meta_query' => array(
    		array(
    			'key' => 'zaiko',//カスタムフィールド在庫
    			'value' => $post_id,//もしかしたらarray($post_id)かも
    			'compare' => 'LIKE'
    		)
    	)
     );
    $query = new WP_Query( $args );
    
    // The Loop
    if ( $the_query->have_posts() ) {
    	echo '<ul>';
    	while ( $the_query->have_posts() ) {
    		$the_query->the_post();
    
    		$shop_name = esc_html(get_field('store-data01'));
                    $shop_url = get_permalink( $post->ID );
    
    	}
    	echo '</ul>';
    	/* Restore original Post Data */
    	wp_reset_postdata();
    } else {
    	// no posts found
    }
    
    

    参考
    関数リファレンス WPQuery

    みたいな取得方法で取れないですかね?
    あとはループ内でsingle.phpと同じ方法で取得すれば、大体は取ってこれると思います。

    軽く調べただけなので、間違っていたらすみません。

    • この返信は1年前にphotographer hiro.が編集しました。理由: コード修正
    • この返信は1年前にphotographer hiro.が編集しました。理由: 参考追加

    ちなみにACFはどこの部分で利用されてますでしょうか?

    実装方法は何通りかあると思いますが

    商品側に値を持たせて
    店舗側でQueryソートするか

    店舗側で単純に直接指定するか

    など、運用UIがもう少しわかれば、具体的な方法などが出せるかと思います。

    @stellanova99 さん

    情報を見る限り、相互で共通するオブジェクト(タクソノミーやカスタムフィールドなど)が無いと思われるので
    カスタムフィールドで、タクソノミータームを選択するか、
    個別に記事を選択すれば可能では無いでしょうか。

    認識間違ってたらすみません。

    自分はアドバンスドカスタムフィールドの「関連」もしくは「タクソノミーターム」で似たような機能を実装させています。

    戻り値にIDを指定すると良いと思います。

    @zugon さん

    >ちなみに「固定ページだけ」に内容検索対象を絞り込むことは可能なのでしょうか?
    >投稿ページに限定して検索するというのは引っかかりますが、固定ページというのが見当たりません。

    投稿タイプの指定を「page」にすれば可能ですので、
    サーチフォームのクエリー等で投稿タイプを’post’から’page’に置き換えて試してみてください

    >管理画面じゃなくて通常表示側で、
    >固定ページのメニュー項目検索をできるようにする方法はありますか?
    フロント側は、js組めばそんなに大変じゃないですが
    html,css,jsを組む知識が前提ですが
    比較的簡単なライブラいーですとmix it upですかね(他にもあるかと思いますが)
    https://www.webprofessional.jp/animated-filtering-sorting-mixitup/

    マルチフィルターというエクステンションを使えば、ボタン以外にも色々使用できますが
    マルチフィルターは有償になってます(制作会社では比較的よく使うライブラリーです)
    吐き出すクラスなどをphpで工夫すれば、実装可能かと思います。
    https://www.kunkalabs.com/mixitup-multifilter/

    ご参考まで

    
    while ( have_rows('bodyset') ) : the_row();
      $text_pic_text_text='';
      $text_pic_pic_pic='';
    
      if ・・・・・・・
    
    

    ってかんじで、クリアすれば平気ですよ。
    もし配列の場合は、$text_pic_pic_pic=array();にしてください。

    フォーラム: 使い方全般
    返信が含まれるトピック: 取得画像サイズの条件分岐がしたいです

    もしかしたら、switch case関数の方がいいかもです。
    http://php.net/manual/ja/control-structures.switch.php

    フォーラム: 使い方全般
    返信が含まれるトピック: 取得画像サイズの条件分岐がしたいです

    dona0513さん

    これでどうでしょう?

    
    <?php
    
    $attachment_id = '';//reset
    $attachment_id = get_post_thumbnail_id();//サムネイルID取得
    
    if($attachment_id)://アイキャッチ画像があれば
     
    //reset
    $image_size = '';
    $thumbnail_src = array();
    $thumbnail_org_width = '';
    $thumbnail_src_org = array();
    $thumbnail_url = '';
    $thumbnail_width = '';
    $thumbnail_height = '';
    
     
    //画像取得
    $image__size_org = 'full';//とりあえず最大サイズを取得
    $thumbnail_src_org = wp_get_attachment_image_src( $attachment_id,$image_size_org );
    ///$thumbnail_url = esc_url($thumbnail_src[0],$protocols);
    $thumbnail_org_width = intval($thumbnail_src_org[1]);
    //$thumbnail_height = intval($thumbnail_src[2]);
    
      if($thumbnail_org_width > 999) ://幅が1000px以上の時
    
        $image_size = 'hoge';//とりあえず最大サイズを取得
        $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size );
    
      elseif( ($thumbnail_org_width < 1000) && ($thumbnail_org_width > 799)   )://999~800の時
    
        $image_size = 'hoge1';//とりあえず最大サイズを取得
        $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size );
    
      elseif( $thumbnail_org_width < 800 )://幅が800px未満の時
    
        $image_size = 'hoge2';//とりあえず最大サイズを取得
        $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size );
    
      endif;
    
      if($thumbnail_src):
        $thumbnail_url = esc_url($thumbnail_src[0],$protocols);
        $thumbnail_width = intval($thumbnail_src[1]);
        $thumbnail_height = intval($thumbnail_src[2]);
    
       echo '<img class="" src="'.$thumbnail_url.'" width="'.$thumbnail_width.'" height="'.$thumbnail_height.'" />'.PHP_EOL;//画像を表示
    
      endif;
    
     
    endif;//ENDアイキャッチ画像があれば
    
    ?>
    
    
    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールド内の改行について

    luarceさん

    後者の場合ですが、まず条件分岐でスマートデバイスだったらという分岐ができるようにします。

    
    //functions.php
    function is_mobile(){
        $useragents = array(
            'iPhone', // iPhone
            'iPod', // iPod touch
            'Android', // 1.5+ Android
            'dream', // Pre 1.5 Android
            'CUPCAKE', // 1.5+ Android
            'blackberry9500', // Storm
            'blackberry9530', // Storm
            'blackberry9520', // Storm v2
            'blackberry9550', // Storm v2
            'blackberry9800', // Torch
            'webOS', // Palm Pre Experimental
            'incognito', // Other iPhone browser
            'webmate', // Other iPhone browser 
    		'phone' // Other phone
        );
        $pattern = '/'.implode('|', $useragents).'/i';
        return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
    }
    
    

    次にカスタムフィールドの取得をします。
    スマートカスタムフィールドを使っていませんので(私)一般的な取得方法書くので、書き換えてください。
    「wp_kses()」はarray()で指定したタグが使用できるようになります。
    関数リファレンス/wp kses

    
    <?php
    
    $key = 'custom_field';
    $meta_values = get_post_meta($id, $key); 
    $meta_values =  apply_filters( 'the_content' , $meta_values );//BR+Pを有効にする
    
    //Eesc_htmlだとhtmlタグが使えないので、ホワイトリストを作る
    
    //BRとP以外使用させない
    $allowed_html_tag = array(
        'p' => array(),
        'br' => array(),
           
    );
    
    //BR以外使用させない
    $allowed_html_tag_br = array(
        'br' => array(),
    );
    
    //p以外使用させない
    $allowed_html_tag_p = array(
        'p' => array(),
    );
    
    if(is_mobile())://すスマホだったら
    
    $meta_values = wp_kses($meta_values, $allowed_html_tag_p);//Pタグのみ使用可
    
    else://スマホ以外
    
    $meta_values = wp_kses($meta_values, $allowed_html_tag);//P・BRタグ使用可
    
    endif;
    	
    	echo $meta_values; //条件分岐の結果をもとにカスタムフィールドをg表示
    
    ?>
    
    
    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールド内の改行について

    luarceさん

    CSS的には、BRタグにclassを付けるのはオススメではない気がします。
    上位タグにクラスを振り、BRにはCSSのみを聞かせた方が一般的な気がします。

    例えば、下記のようにすれば、同じ効果が得れると思います。

    
    //CSS
    @media only screen and (max-width : 640px) {
    .content br{}/* 改行させたくないときのCSS */
    }
    
    

    また、ユーザーエージェント利用すればのような方法もあります。
    わたくしも、よく似たような用法を用いますが、個人的には「wp_kses()」が使いやすいです

    
    if(is_mobile())://is_mobile()はfunctions.phpで定義
    
    $allowed_html_tag = array(
        //pタグを無効化しない
        'p' => array(),
    );
    
      $custom_field = wp_kses($custom_field, $allowed_html_tag);
    endif;
    
    

    minimumkさん

    ワードプレスのルートにphp.iniというファイルを作成し、設定を記述すると良いと思います。
    下記コードは一例です。

    
    ;メモリ使用量の上限
    memory_limit = 20M
    
    ;POSTデータの最大サイズ ※合計サイズ
    post_max_size = 20M
    
    ;1ファイルあたりの最大アップロードサイズ
    upload_max_filesize = 20M
    
    
    フォーラム: 使い方全般
    返信が含まれるトピック: 取得画像サイズの条件分岐がしたいです

    dona0513さん

    こんな感じでしょうか。

    考え方的には、まず、アップしたオリジナル画像の幅を取得します。
    オリジナル画像の幅を基準に条件分岐を行い、画像出力するといった関数です。

    
    <?php
    
    $attachment_id = '';//reset
    $attachment_id = get_post_thumbnail_id();//サムネイルID取得
    
    if($attachment_id)://アイキャッチ画像があれば
     
    //reset
    $image_size = '';
    $thumbnail_src = array();
    $thumbnail_org_width = '';
    $thumbnail_src_org = array();
    $thumbnail_url = '';
    $thumbnail_width = '';
    $thumbnail_height = '';
    
     
    //画像取得
    $image__size_org = 'full';//とりあえず最大サイズを取得
    $thumbnail_src_org = wp_get_attachment_image_src( $attachment_id,$image_size_org );
    ///$thumbnail_url = esc_url($thumbnail_src[0],$protocols);
    $thumbnail_org_width = intval($thumbnail_src_org[1]);
    //$thumbnail_height = intval($thumbnail_src[2]);
    
      if($thumbnail_org_width > 999) ://幅が1000px以上の時
    
        $image_size = 'hoge';//とりあえず最大サイズを取得
        $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size );
    
      elseif($thumbnail_org_width > 799)://幅が800px以上の時
    
        $image_size = 'hoge1';//とりあえず最大サイズを取得
        $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size );
    
      else://幅が800px以下の時
    
        $image_size = 'hoge2';//とりあえず最大サイズを取得
        $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size );
    
      endif;
    
      if($thumbnail_src):
        $thumbnail_url = esc_url($thumbnail_src[0],$protocols);
        $thumbnail_width = intval($thumbnail_src[1]);
        $thumbnail_height = intval($thumbnail_src[2]);
    
       echo '<img class="" src="'.$thumbnail_url.'" width="'.$thumbnail_width.'" height="'.$thumbnail_height.'" />'.PHP_EOL;//画像を表示
    
      endif;
    
     
    endif;//ENDアイキャッチ画像があれば
    
    ?>
    
    
    • この返信は3年、 2ヶ月前にphotographer hiro.が編集しました。理由: コード修正
    • この返信は3年、 2ヶ月前にphotographer hiro.が編集しました。理由: 説明追加
    フォーラム: 使い方全般
    返信が含まれるトピック: Wp1ページだけをHPトップに移動させるには

    presencobo さん

    解決して、良かったです。
    「解決」した質問は、ステータスを「解決済み」にしておくと良いですよ。

    本題ですが、
    関数とはhtmlではなくphpの方ですね。
    例えば、記事タイトルを表示したい→「the_titl()」などを組合わせて、テーマを作成したり・カスタマイズしたりして、最終的にPHP→htmlへ出力させます。
    このphpの部分を総称して関数と認識頂いて間違えではないと思います。

    詳しくは関数リファレンスをご覧ください。

    フォーラム: 使い方全般
    返信が含まれるトピック: Wp1ページだけをHPトップに移動させるには

    presencobo さん

    インクルードの部分は、インストールフォルダで大丈夫です。

    ゲットテンプレートパーツの部分は、
    こちらは、やりたいことデザイン、使用によって変わって来るので難しい部分です。

    テーマフォルダにphpを作成し、編集ソフトで通常のテンプレートを作る時とどうように関数を描いてください。

    作り方的にはフロントページを作る時と同様に作ると良いと思います。

    フォーラムだけですべてをお伝えするのは難しいので本など見られると良いと思います

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