フォーラムへの返信

15件の返信を表示中 - 61 - 75件目 (全318件中)
  • kuck1u様

    ありがとうございます。
    色々と調べてみたいと思います。

    sarasararさん、余計な質問してしまいすみませんでした。

    フォーラム: 使い方全般
    返信が含まれるトピック: ユーチューブのURLを綺麗にしたい
    トピック投稿者 photographer hiro.

    (@mura0403)

    colorfullifeinfo様
    manbo様

    ご回答ありがとうございました。
    希望してたURLが生成できました。

    ユーチューブ動画をトップページの背景にしたく、JSの「data-property」に使おうと思っていました。
    http://coliss.com/articles/build-websites/operation/work/video-background-website-by-designmodo.html

    本当にありがとうございました。

    kuck1uさん

    ありがとうございます。
    勉強になります。

    kuck1uさんご質問させてください。
    functions.phpなどでてきおうしづらいルール的な条件が難しいものについては、SQLをつかうべきなのでしょうか?

    sarasarariさん

    whileをクエリーなしでつかわれてる?感じがしますので
    下記の方に合わせてみてはいかがでしょうか?

    もしくはforeachか、

    もっとこまかい設定はSQL関数とかになってしまうかもしれません。

    
    <?php
    
    $args = array(
    //query条件を定義
    );
     
    //メインループ
    if ( query_posts( $args ) ) :
    query_posts( $args );
    while ( have_posts() ) :
    the_post();
    ?>
     
     <p>投稿のループ</p>
     
    <?php endwhile; else: ?>
     
     <p>投稿がなかったときの処理</p>
      
    <?php
    endif;
    wp_reset_postdata();
    
    ?>
    
    

    未検証ですが、以下のコードとかどうですか?
    「’relation’ => ‘AND’,」はいらないかもしれないです。

    
    $custom_term_id = get_field('products-cate');
    $args = array(
    	'post_type'  => array('aaa','bbb'),
    	'numberposts' => 8,
    	'orderby' => 'rand',
    	'post__not_in' => array($post->ID),
    	'relation' => 'AND',
        'meta_query' => array(
    	       array(
    			'key'     => 'products-cate',
    			'value'   => array( $custom_term_id ),
    			'compare' => 'IN',
    		   ),
    	
    	'tax_query' => array(
    	         'taxonomy' => 'products_cate',
    	         'field' => 'ID',//ID or slug
    	         'terms' => array( $custom_term_id ),//term_id
               )
    
         ),
    
    );
    

    sarasarariさん

    ご確認ですが、
    結論的にはカスタムフィールドで指定したターム一覧を記事ページにソートしたい感じでしょうか?

    下のソースどちらか試して頂けますでしょうか。

    簡単で申し訳ございません。

    
    <?php
    
    //「aaa」「bbb」は投稿タイプ
    
    //パターン1
    $custom_term_id = get_field('products-cate');
    $args = array(
    	'post_type'  => array('aaa','bbb'),
    	'numberposts' => 8,
    	'meta_key'   => 'age',
    	'orderby'    => 'meta_value_num',
    	'orderby' => 'rand',
    	'post__not_in' => array($post->ID),
    	'meta_query' => array(
    		array(
    			'key'     => 'products-cate',
    			'value'   => array( $custom_term_id ),
    			'compare' => 'IN',
    		),
    	),
    );
    
    //products-cateのカスタムフィールドの値をソート
    
    //パターン2
    $custom_term_id = get_field('products-cate');
    $args = array(
    	'numberposts' => 8,
    	'post_type' => array('aaa','bbb'),
    	'taxonomy' => 'products_cate',
    	'field' => 'ID',//ID or slug
    	'terms' => array( $custom_term_id ),//term_id
    	'orderby' => 'rand',
    	'post__not_in' => array($post->ID) 
     );
    
    //カスタムフィールドで指定した値をタームIDとしてソート
    
    ?>
    
    トピック投稿者 photographer hiro.

    (@mura0403)

    お世話になります。

    カスタムフィールドの値でソートできるようになったのですが
    カスタムフィールの値(日付)で並び替えが出来なく、困っております。

    現状、以下のソースです。

    
    <?php
     // ネットワークお知らせ情報
    
    /*
    
    ソートに必要なカスタムフィールド
    //②get_field('event-complete-time');//期限を表すフィールド(日付型)「日時が古い順番で並び替えたい」(未解決)
    
    */
    
    $network_site_not_ids = '';
    $network_site_not_ids = sanitize_text_field(get_field('network-site-not-id','option'));
    $network_site_not_ids = mb_convert_kana($network_site_not_ids, 'a', 'utf-8');
    //$network_site_not_ids = mb_ereg_replace('[^0-9]', '', $network_site_not_ids);//数字とカンマだけにしたいけど、やり方不明
    
    $args = array(
         //「1」が立つと有効、「0」だと無効
         'public' => 1,//属性が「公開」のサイトのみ
         'archived' => 0,//アーカイブサイト
         'mature' => 0,//成人向けサイト
         'spam' => 0,//スパムサイト
         'deleted' => 0, //削除済みサイト
         'site__not_in' => array( /*get_current_blog_id(),$network_site_not_ids*/), //対象除外 一時無効
    );
    $sites = get_sites($args);
     
      if($sites ):
        foreach( $sites as $child_site ):
          $child_site_id = $child_site->blog_id;
          $blog_id_arr[] = $child_site_id;
         endforeach;
      endif;
     
      $sql = '';
      $tmp = $blog_id_arr;
    //$limit_pub = '-1 month';//表示日数の設定(マイナスを付ける事)
    //$limit_mod = '-2 week';//表示日数の設定(マイナスを付ける事)
     
      foreach($blog_id_arr as $b_id){
         next($tmp);
         switch_to_blog($b_id);
         $sql .= <<<HERE
    (SELECT *, $b_id as blog_id
    FROM $wpdb->posts
    
    JOIN $wpdb->postmeta AS m1
    ON m1.post_id = $wpdb->posts.ID
    
    WHERE
    post_type = 'event'
    AND post_status = 'publish'
    AND m1.meta_key = 'event-complete'
    AND m1.meta_value = 'normal'
    /*AND (post_date > date_add( now(), interval $limit_pub ) OR post_modified > date_add( now(), interval $limit_mod ) )*/
    
    )
    		 
    HERE;
      
        if(current($tmp) !== false){
            $sql .= "UNION\n";
        }
        restore_current_blog();
     
    }//END foreach($blog_id_arr as $b_id)
     
    //event-complete
    
    $sql .= <<<HERE
    ORDER BY post_date ASC 
    
    LIMIT 5
     
    HERE;
    $posts = $wpdb->get_results($sql);
     
      //記事一覧
      foreach ($posts as $post):
        switch_to_blog($post->blog_id);
        setup_postdata($post);
    
        //サイト名取得(重要)
          $current_sites = get_blog_details($post->blog_id);
          //$site_path = $current_sites -> path;
          $blog_name = sanitize_text_field($current_sites -> blogname);
     
          include('parts_relation_single_post_list_one.php');//投稿の標準コンテンツ読み込み
    
            //$network_post_outで出力
    
      endforeach;
     
      wp_reset_postdata($post); wp_reset_query();
      restore_current_blog();
     
    //endif;
     
    
    switch_to_blog( $current_blog_id );//現在のサイトに戻す
    
     
     //END 関連商品
     ?>
    

    恐れ入ります、ご存知の方いらっしゃいましたら、ご教授頂ければ幸いです。
    よろしくお願い致します。

    トピック投稿者 photographer hiro.

    (@mura0403)

    ishitaka様

    上記のコードで、思いどうりのアクションが出来ました。
    本当にありがとうございました。

    フォーラム: 使い方全般
    返信が含まれるトピック: 関連のある記事を表示したい

    sarasarariさん

    ごめんなさい、ちょっと内容がわかりずらいので
    「関連」はおそらくソートですので、投稿タイプ(slug)が何で、タクソノミー(slug)が何で、カスタムフィールド(slug)がなにで
    どのようにソートをかけたいなど、整理して頂くとわかりやすいかもしれません。

    sakamotosndさん

    「$timestamp」の部分で下の方がわかりやすいかもしれないです(未検証)

    
    $timestamp = date('U', strtotime('last Month', strtotime( date('U') )));
    

    sakamotosndさん

    「$today = getdate();」の部分を以下のように変更してみていだたけますでしょうか

    
    $timestamp = date('U', mktime(0, 0, 0, date('m') + 0, -1, date('Y')));//先月
    $last_month = getdate($timestamp );//ミリ秒で渡す
    
    
    
    $args = array(
    	'numberposts' => '-1',
    	'post_type'  => 'post',
    	'meta_key' => 'tantou', //営業マンのカスタムフィールド名
    	'meta_value' => 'a', //例えば、営業マン'a'
    	//'orderby'    => 'meta_value_num',
    	//'order'      => 'ASC',
    	'date_query' => array(
    		array(
    			'year'  => $last_month['year'],
    			'month' => $last_month['mon'],
    		),
    	),
    );
    

    配列しか確認していません、すみません。

    getdate

    sakamotosndさん
    今月でしたらこんな感じでしょうか。

    
    $today = getdate();
    $args = array(
    	'numberposts' => '-1',
    	'post_type'  => 'post',
    	'meta_key' => 'tantou', //営業マンのカスタムフィールド名
    	'meta_value' => 'a', //例えば、営業マン'a'
    	//'orderby'    => 'meta_value_num',
    	//'order'      => 'ASC',
    	'date_query' => array(
    		array(
    			'year'  => $today['year'],
    			'month' => $today['mon'],
    		),
    	),
    );
    
    
    フォーラム: マルチサイト
    返信が含まれるトピック: 子サイトを含めた検索フォーム

    inoue0213さん

    以下のソースを「search.php」でカスタマイズしています。
    いかがでしょうか。

    
    <div id="main_col">
    <?php
    // 検索クエリを取得
    $search_result = get_search_query();
    // マルチサイト内を検索
    $search_results = search_multisite($search_result);
    
    function search_multisite($query_string) {
    add_action( 'pre_get_posts', 'my_pre_get_posts' );
    
    function my_pre_get_posts( $query ) {
    $query->set( 'posts_per_page' , 3 );//1ページ当たりの数
    }
    
       // 文字列エンコード
       $query_string = esc_attr($query_string);
       $search_result = array();
    
       // ネットワーク上のブログを取得
       $blogs = get_blogs_of_user( 1, true);
       foreach ( $blogs as $blog ):
         // ブログを切り替える
         switch_to_blog($blog->userblog_id);
         // 切り替えたブログでqueryを実行
         $search = new WP_Query(
    	   array(
    	     's' => $query_string,
    		 'post_type' => array('post','page',)
    		  )
    	 );
    
         if ($search->found_posts > 0):
           foreach ( $search->posts as $post ):
             // 投稿記事に関連するグローバル変数を設定する
             setup_postdata($post);
             array_push($search_result, $post);
    
           endforeach;
         endif; 
    
       endforeach;
    
       return $search_result;
       restore_current_blog();
       
    
    // END function search_multisite($query_string)
     }
    
    ?>      
    
    <h2>検索結果</h2>
    <p>“<?php the_search_query(); ?>”に関連する検索の結果 (<?php echo count($search_results); ?> 件)</p>
    
    <?php
    foreach ( $search_results as $post ) :
    //the_post;
    setup_postdata($post);
    ?>
    <!--検索結果のループ-->
    <div class="searchList" style="border:solid 1px red; margin-bottom:15px;">
      <div class="article">
        <h3><a href="<?php echo $post->guid; ?>"><?php the_title(); ?></a></h3>
        <p>
        
        <?php
        $id =get_the_ID();
    	//echo $post->post_content;
    	the_excerpt();
    
    	?>
        </p>
        <p class="detail"><a href="<?php echo $post->guid; ?>">詳細はこちら</a></p>
      </div>
    </div>
    <!--/検索結果のループ-->
    
    <?php
    endforeach;
    wp_reset_query();
    
    ?>
     <div id="next_post"><?php next_posts_link(); ?></div>
    </div><!-- END #main_col -->
    
    

    sakamotosndさん

    もう解決ってされましたでしょうか。
    基本的には、元のソースの部分の「echo post_custom(“uriage”);」を以下のソースで配列化させます。

    
    $uriage = post_custom("uriage");
    if($uriage): $uriage_a[] = $uriage; endif; 
    echo $uriage;
    

    ループが終わった後に、

    
    if($uriage_a):
    $goukei = array_sum ( $uriage_a);
    
    echo $goukei;
    
    endif;
    

    と、array関数で計算してあげると良いと思います。
    array_sum

    あとは皆様に頂いたソースにあらせて頂ければ、計算が簡素化できる気がします。
    私自身、ほとんど配列関数で組んでしまうので、皆様のソースの方がよろしいかもしれません。

    って感じの考え方とかはいかがでしょうか?

    クエリー関連は「関数リファレンス/WP Query」を参考にされるといろいろできるかもしれないです。

    • この返信は7年、 7ヶ月前にphotographer hiro.が編集しました。理由: 誤記入の為
    トピック投稿者 photographer hiro.

    (@mura0403)

    自己解決できました。

    
    $args = array(
    	'post_type' => array('page'),
    	'post__not_in' => array($id), 
    	'meta_query' => array(
    	'relation' => 'AND',
    		array(
    			'key' => '_wp_page_template',
    			'value' => 'page_taxonomy_archive.php', /* your template file name */
    			'compare' => '!='
    		),
    		array(
    			'key' => '_wp_page_template',
    			'value' => 'page_archive.php', /* your template file name */
    			'compare' => '!='
    		),
    		array(
    			'key' => '_wp_page_template',
    			'value' => 'page_page_archive.php', /* your template file name */
    			'compare' => '!='
    		)
    	),
    	'has_password' => false,
    	'post_status' => array('publish'), 
    	'posts_per_page' => 10,
    	'paged' => get_query_var('paged'),//重要(固定ページを使うときは設置)
     
    );
    
    
15件の返信を表示中 - 61 - 75件目 (全318件中)