custom post type עם page builder בתבנית titanium

פורום התמיכה פתוח למשתמשים מנויים בלבד. יש להתחבר או להרשם כדי להוסיף דיון או תגובה בפורום.

פורום התמיכה הועבר
על מנת שנוכל לתת לכם שירות ותמיכה בצורה אישית יותר, פורום התמיכה הועבר למערכת טיקטים באמצעות האימייל. בימים הקרובים יסגר הפורום לכתיבת הודעות חדשות לחלוטין.

ראשי פורומים תמיכה custom post type עם page builder בתבנית titanium

דיון זה מוגדר: סגור

תגיות: ,

מוצגות 13 תגובות – 1 עד 13 (מתוך 13 סה״כ)
  • מאת
    תגובות
  • #42154

    skymaster
    משתתף

    שלום 🙂
    כיצד אני יוצר custom post type בתבנית titanium שתהיה מבוססת על "פוסטים" ושתכיל page builder?
    התשמשתי בתוסף https://wordpress.org/plugins/custom-post-type-ui/ לצורך יצירת ה"קסטום פוסט" שאני רוצה

    אני מבין שעל מנת לבנות את ה"קסטום פוסט" שאני רוצה, עלי להביא ל child theme את הקבצים: ,page.php, single.php content.php
    אבל פה קצת נתקעתי כי לא שולט עדין ב 100% במבנה של wp ו pojo

    אשמח לעזרה

    #42190

    Noa
    משתתף

    בוקר טוב,

    להלן קישור למדריך שלנו המסביר על הוספת בילדר ל CPT:

    הוספת ממשק ה-Builder לפוסטים

    #42390

    skymaster
    משתתף
    תגובה זו סומנה כפרטית.
    #42431

    Yakir Sitbon
    משתתף

    בשורה 'grid_6' => __( 'Grid 6', 'pojo' ), אתה מוסיף עוד אפשרויות כמו שאתה רוצה. רק חשוב שה-key של המערך הזה יהיה זהה לערך שאתה כותב ב-content-{{SLUG}}.php.

    #42522

    skymaster
    משתתף

    תודה על ההכוונה הצלחתי להכניס את ה key הנכון ולהציג את התוכן בצורה של גריד 3 עמודת כפי שרציתי.

    ראיתי שבגלריות ניתן גם להחליט אם רוצים להציג פילטר של הקטגרויות:
    פילטר לפי קטגרויות
    הלכתי ל core/addons/galleries/classes/class-pojo-gallery-cpt.php
    והצלחתי ליצור ב CPT 'trips' שליבאמצעות העתקת הקוד:

    
    			$fields[] = array(
    			'id'      => 'add_filter_by_category',
    			'title'   => __( 'Add Filter By Category', 'pojo' ),
    			'type'    => Pojo_MetaBox::FIELD_SELECT,
    			'options' => array(
    				'' => __( 'Show', 'pojo' ),
    				'hide' => __( 'Hide', 'pojo' ),
    			),
    			'std' => '',
    		);
    

    הבעיה: אני כרגע לא מצליח להציג (בפרונט של הדף) את הפילטור לפי הקטגוריות היחודיות שיצרתי ל CPT שלי..
    יצרתי את הקטגוריות באמצעות הוספת הקוד שלמטה ל functions.php:

    
    add_action( 'init', 'build_taxonomies', 0 );
    
    function build_taxonomies() {
        register_taxonomy( 'categories', 'trips', array( 'hierarchical' => true, 'label' => 'קטגוריות טיולים', 'query_var' => true, 'rewrite' => true ) );
    }
    

    הייתי רוצה שיוצגו כפי שהן מוצגות בגלריות של פוגו':
    פילטר לפי קטגוריות בגלריות

    
    
    
    #42531

    Yakir Sitbon
    משתתף

    בקובץ שלקחת ממנו את החומר הזה, תראה את המימוש שלו באיזורים אחרים (תעשה חיפוש על המילה po_add_filter_by_category).

    #42544

    skymaster
    משתתף

    היי יקיר,

    איתרתי את הפונקציה והוספתי ל functions.php באופן הבא:

    	public function pojo_before_content_loop( $display_type ) {
    		if ( 'trips' !== atmb_get_field( 'po_content' ) || 'hide' === atmb_get_field( 'po_add_filter_by_category' ) )
    			return;
    		
    		$taxonomy_terms = atmb_get_field( 'po_taxonomy_terms', false, Pojo_MetaBox::FIELD_CHECKBOX_LIST );
    		if ( empty( $taxonomy_terms ) )
    			return;
    		
    		$terms = get_terms( 'categories', array(
    			'include' => $taxonomy_terms,
    		) );
    		
    		if ( is_wp_error( $terms ) )
    			return;
    		
    		?><ul class="category-filters">
    			<li><a href="javascript:void(0);" data-filter="*" class="active"><?php _e( 'All', 'pojo' ); ?></a></li>
    			<?php foreach( $terms as $term ) : ?>
    			<li><a href="javascript:void(0);" data-filter=".filter-term-<?php echo esc_attr( $term->term_id ); ?>"><?php echo $term->name; ?></a></li>
    			<?php endforeach; ?>
    		</ul><?php
    	}
    add_action( 'pojo_before_content_loop', array( &$this, 'pojo_before_content_loop' ), 20 );

    כמובן שקיבלתי:
    Parse error: syntax error, unexpected T_PUBLIC

    מה עשיתי לא נכון?
    האם תהיה מוכן לעשות איתי חצי שעה team viewer ולעזור לי?
    אשמח גם לשלם לך עבור העזרה.

    #42558

    skymaster
    משתתף

    שלי ותיקנתי את הפונקציה:

    
    // Add Pojo trips to smart page
    function pojo31106_add_post_type_to_smart_page( $post_types = array() ) {
    	$post_types[] = 'trips';
    	return $post_types;
    }
    add_filter( 'pf_format_content_list', 'pojo31106_add_post_type_to_smart_page' );
    
    // Add filters to trips smart page
    function pojo31106_smart_page_add_fields( $fields = array() ) {
    	$cpt = 'trips';
    
    	$fields[] = array(
    		'id' => 'content',
    		'type' => Pojo_MetaBox::FIELD_HIDDEN,
    		'std' => $cpt,
    	);
    	
    	// If you want filter by Taxonomy
    	//$fields[] = array(
    	 //'id' => 'taxonomy',
    	 //'type' => Pojo_MetaBox::FIELD_HIDDEN,
    	 //'std' => 'categories',
    	//);
    	
    	$fields[] = array(
    	 'id' => 'taxonomy_terms',
    	 'title' => __( 'Choose Category', 'pojo' ),
    	 'type' => Pojo_MetaBox::FIELD_TAXONOMY_TERM_CHECKBOX,
    	 'taxonomy' => 'categories',
    	);
    	
    	$fields[] = array(
    		'id' => 'display_type',
    		'title' => __( 'Select Content Layout', 'pojo' ),
    		'type' => Pojo_MetaBox::FIELD_SELECT,
    		'options' => array(
    			'' => __( 'Default', 'pojo' ),
    			'trips_three_columns' => __( 'גריד 3 עמודות', 'pojo' ),
    		),
    		'std' => '',
    	);
    	
    	// If you want to display Taxonomy
    	$fields[] = array(
    		'id'      => 'add_filter_by_category',
    		'title'   => __( 'Add Filter By Category', 'pojo' ),
    		'type'    => Pojo_MetaBox::FIELD_SELECT,
    		'options' => array(
    		  '' => __( 'Show', 'pojo' ),
    			'hide' => __( 'Hide', 'pojo' ),
    		),
    		'std' => '',
    	);
    	
    	return $fields;
    }
    add_filter( 'pf_list_posts_cpt-trips', 'pojo31106_smart_page_add_fields' );
    
    // display trips filters categories 
    	public function pojo_before_content_loop( $display_type ) {
    		if ( 'trips' !== atmb_get_field( 'content' ) || 'hide' === atmb_get_field( 'add_filter_by_category' ) )
    			return;
    		
    		$taxonomy_terms = atmb_get_field( 'taxonomy_terms', false, Pojo_MetaBox::FIELD_CHECKBOX_LIST );
    		if ( empty( $taxonomy_terms ) )
    			return;
    		
    		$terms = get_terms( 'categories', array(
    			'include' => $taxonomy_terms,
    		) );
    		
    		if ( is_wp_error( $terms ) )
    			return;
    		
    		?><ul class="category-filters">
    			<li><a href="javascript:void(0);" data-filter="*" class="active"><?php _e( 'All', 'pojo' ); ?></a></li>
    			<?php foreach( $terms as $term ) : ?>
    			<li><a href="javascript:void(0);" data-filter=".filter-term-<?php echo esc_attr( $term->term_id ); ?>"><?php echo $term->name; ?></a></li>
    			<?php endforeach; ?>
    		</ul><?php
    	}
    add_action( 'pojo_before_content_loop', array( &$this, 'pojo_before_content_loop' ), 20 );
    

    אבל עדין עדין מקבל…Parse error: syntax error, unexpected T_PUBLIC
    🙁

    #42567

    Yakir Sitbon
    משתתף

    כי המקור שלקחת הוא מתוך מחלקה. ואתה כתבת פונקציה עם public שזה לא בתוך מחלקה.. פשוט אז תמחוק את המילה public וגם תמחק את ה-array( &$this…

    #42587

    skymaster
    משתתף

    מחקתי, כך זה נראה כעת:

    // display trips filters categories 
    	function pojo_before_content_loop( $display_type ) {
    		if ( 'trips' !== atmb_get_field( 'content' ) || 'hide' === atmb_get_field( 'add_filter_by_category' ) )
    			return;
    		
    		$taxonomy_terms = atmb_get_field( 'taxonomy_terms', false, Pojo_MetaBox::FIELD_CHECKBOX_LIST );
    		if ( empty( $taxonomy_terms ) )
    			return;
    		
    		$terms = get_terms( 'categories', array(
    			'include' => $taxonomy_terms,
    		) );
    		
    		if ( is_wp_error( $terms ) )
    			return;
    		
    		?><ul class="category-filters">
    			<li><a href="javascript:void(0);" data-filter="*" class="active"><?php _e( 'All', 'pojo' ); ?></a></li>
    			<?php foreach( $terms as $term ) : ?>
    			<li><a href="javascript:void(0);" data-filter=".filter-term-<?php echo esc_attr( $term->term_id ); ?>"><?php echo $term->name; ?></a></li>
    			<?php endforeach; ?>
    		</ul><?php
    	}
    add_action( 'pojo_before_content_loop' );

    רק שעכשיו הוא צועק עלי ש
    Warning: Missing argument 2 for add_action(), called in /home/coopflam/public_html/baobabtrips/wp-content/themes/titanium-child/functions.php on line 101 and defined in /home/coopflam/public_html/baobabtrips/wp-includes/plugin.php on line 457

    הסתכלתי שם וזה מה שרשום:

    
    function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
    	return add_filter($tag, $function_to_add, $priority, $accepted_args);
    }
    
    #42590

    Yakir Sitbon
    משתתף

    אתה צריך להויסף את זה בצורה תקינה.. תלמד מפה איך לעשות את זה נכון: https://codex.wordpress.org/Function_Reference/add_action

    ובקוד שלך תכתוב ככה:
    add_action( 'pojo_before_content_loop', pojo_before_content_loop, 20 );

    #42593

    skymaster
    משתתף

    אחלה הכנסתי, הwarning ירד 🙂
    אבל ה taxonomy_terms עדין לא מוצגים..

    אולי בגלל הצורה שבה הגדרתי אותם?

    // Add Pojo builder to posts
    function pojo_add_builder_in_posts() {
        add_post_type_support( 'post', array( 'pojo-page-format' ) );
    }
    add_action( 'init', 'pojo_add_builder_in_posts' );
    
    // WP trips Categories
    function build_taxonomies() {
        register_taxonomy( 'categories', 'trips', array( 'hierarchical' => true, 'label' => 'קטגוריות טיולים', 'query_var' => true, 'rewrite' => true ) );
    }
    add_action( 'init', 'build_taxonomies', 0 );
    
    // Add Pojo trips to smart page
    function pojo31106_add_post_type_to_smart_page( $post_types = array() ) {
    	$post_types[] = 'trips';
    	return $post_types;
    }
    add_filter( 'pf_format_content_list', 'pojo31106_add_post_type_to_smart_page' );
    
    // Add filters to trips smart page
    function pojo31106_smart_page_add_fields( $fields = array() ) {
    	$cpt = 'trips';
    
    	$fields[] = array(
    		'id' => 'content',
    		'type' => Pojo_MetaBox::FIELD_HIDDEN,
    		'std' => $cpt,
    	);
    	
    	// If you want filter by Taxonomy
    	//$fields[] = array(
    	 //'id' => 'taxonomy',
    	 //'type' => Pojo_MetaBox::FIELD_HIDDEN,
    	 //'std' => 'categories',
    	//);
    	
    	$fields[] = array(
    	 'id' => 'taxonomy_terms',
    	 'title' => __( 'Choose Category', 'pojo' ),
    	 'type' => Pojo_MetaBox::FIELD_TAXONOMY_TERM_CHECKBOX,
    	 'taxonomy' => 'categories',
    	);
    	
    	$fields[] = array(
    		'id' => 'display_type',
    		'title' => __( 'Select Content Layout', 'pojo' ),
    		'type' => Pojo_MetaBox::FIELD_SELECT,
    		'options' => array(
    			'' => __( 'Default', 'pojo' ),
    			'trips_three_columns' => __( 'גריד 3 עמודות', 'pojo' ),
    		),
    		'std' => '',
    	);
    	
    	// If you want to display Taxonomy
    	$fields[] = array(
    		'id'      => 'add_filter_by_category',
    		'title'   => __( 'Add Filter By Category', 'pojo' ),
    		'type'    => Pojo_MetaBox::FIELD_SELECT,
    		'options' => array(
    		  '' => __( 'Show', 'pojo' ),
    			'hide' => __( 'Hide', 'pojo' ),
    		),
    		'std' => '',
    	);
    	
    	return $fields;
    }
    add_filter( 'pf_list_posts_cpt-trips', 'pojo31106_smart_page_add_fields' );
    
    // display trips filters categories 
    	function pojo_before_content_loop( $display_type ) {
    		if ( 'trips' !== atmb_get_field( 'content' ) || 'hide' === atmb_get_field( 'add_filter_by_category' ) )
    			return;
    		
    		$taxonomy_terms = atmb_get_field( 'taxonomy_terms', false, Pojo_MetaBox::FIELD_CHECKBOX_LIST );
    		if ( empty( $taxonomy_terms ) )
    			return;
    		
    		$terms = get_terms( 'categories', array(
    			'include' => $taxonomy_terms,
    		) );
    		
    		if ( is_wp_error( $terms ) )
    			return;
    		
    		?><ul class="category-filters">
    			<li><a href="javascript:void(0);" data-filter="*" class="active"><?php _e( 'All', 'pojo' ); ?></a></li>
    			<?php foreach( $terms as $term ) : ?>
    			<li><a href="javascript:void(0);" data-filter=".filter-term-<?php echo esc_attr( $term->term_id ); ?>"><?php echo $term->name; ?></a></li>
    			<?php endforeach; ?>
    		</ul><?php
    	}
    add_action( 'pojo_before_content_loop', pojo_before_content_loop, 20 );

    ?

    #42622

    Yakir Sitbon
    משתתף

    תנסה לגשת אליהם בצורה של po_taxonomy_terms.. וגם תגדיר שמה את ה-taxonomy לפי ה-taxonomy שלך..

מוצגות 13 תגובות – 1 עד 13 (מתוך 13 סה״כ)

הפורום 'תמיכה' נסגר לדיונים ולתגובות חדשות.