DariushGreat

ارسال نوشته با Advanced custom fields

3 پست در این موضوع قرار دارد

ارسال شده در (ویرایش شده)

سلام

مي‌خوام با كمك افزونه Advanced custom fields امكان فرستادن نوشته براي كاربران سايت رو فراهم كنم. اين كد رو پيدا كردم:

<?php
/*
  Template Name: User create post
 */
get_header();
 ?>
	<section class="webbody">
		

		<section class="post page single radius shadow">

<?php 
/**
 * Add required acf_form_head() function to head of page
 * @uses Advanced Custom Fields Pro
 */
add_action( 'get_header', 'tsm_do_acf_form_head', 1 );
function tsm_do_acf_form_head() {
	// Bail if not logged in or not able to post
	if ( ! ( is_user_logged_in() || current_user_can('publish_posts') ) ) {
		return;
	}
	acf_form_head();
}
/**
 * Deregister the admin styles outputted when using acf_form
 */
add_action( 'wp_print_styles', 'tsm_deregister_admin_styles', 999 );
function tsm_deregister_admin_styles() {
	// Bail if not logged in or not able to post
	if ( ! ( is_user_logged_in() || current_user_can('publish_posts') ) ) {
		return;
	}
	wp_deregister_style( 'wp-admin' );
}
/**
 * Add ACF form for front end posting
 * @uses Advanced Custom Fields Pro
 */
add_action( 'genesis_entry_content', 'tsm_do_create_post_form' );
function tsm_do_create_post_form() {
	// Bail if not logged in or able to post
	if ( ! ( is_user_logged_in()|| current_user_can('publish_posts') ) ) {
		echo '<p>You must be a registered author to post.</p>';
		return;
	}
	$new_post = array(
		'post_id'            => 'new', // Create a new post
		// PUT IN YOUR OWN FIELD GROUP ID(s)
		'field_groups'       => array(409,406), // Create post field group ID(s)
		'form'               => true,
		'return'             => '%post_url%', // Redirect to new post url
		'html_before_fields' => '',
		'html_after_fields'  => '',
		'submit_value'       => 'Submit Post',
		'updated_message'    => 'Saved!'
	);
	acf_form( $new_post );
}
/**
 * Back-end creation of new candidate post
 * @uses Advanced Custom Fields Pro
 */
add_filter('acf/pre_save_post' , 'tsm_do_pre_save_post' );
function tsm_do_pre_save_post( $post_id ) {
	// Bail if not logged in or not able to post
	if ( ! ( is_user_logged_in() || current_user_can('publish_posts') ) ) {
		return;
	}
	// check if this is to be a new post
	if( $post_id != 'new' ) {
		return $post_id;
	}
	// Create a new post
	$post = array(
		'post_type'     => 'post', // Your post type ( post, page, custom post type )
		'post_status'   => 'publish', // (publish, draft, private, etc.)
		'post_title'    => wp_strip_all_tags($_POST['acf']['field_54dfc93e35ec4']), // Post Title ACF field key
		'post_content'  => $_POST['acf']['field_54dfc94e35ec5'], // Post Content ACF field key
	);
	// insert the post
	$post_id = wp_insert_post( $post );
	// Save the fields to the post
	do_action( 'acf/save_post' , $post_id );
	return $post_id;
}
/**
 * Save ACF image field to post Featured Image
 * @uses Advanced Custom Fields Pro
 */
add_action( 'acf/save_post', 'tsm_save_image_field_to_featured_image', 10 );
function tsm_save_image_field_to_featured_image( $post_id ) {
	// Bail if not logged in or not able to post
	if ( ! ( is_user_logged_in() || current_user_can('publish_posts') ) ) {
		return;
	}
	// Bail early if no ACF data
	if( empty($_POST['acf']) ) {
		return;
	}
	// ACF image field key
	$image = $_POST['acf']['field_54dfcd4278d63'];
	// Bail if image field is empty
	if ( empty($image) ) {
		return;
	}
	// Add the value which is the image ID to the _thumbnail_id meta data for the current post
	add_post_meta( $post_id, '_thumbnail_id', $image );
}
// acf/update_value/name={$field_name} - filter for a specific field based on it's key
//* Run the Genesis loop
genesis();
?>
		</section>

		<?php get_sidebar(); ?>

	</section>

<?php get_footer(); ?>

فيلدهاي مربوطه با آيدي فيلدها رو هم به طور آماده بود كه ايمپورت كردم و از اين رو مشكلي نيست. مشكل اينجاست كه نمي‌تونه genesis(); رو اجرا كنه و باعث عدم بارگزاري قالب مي‌شه. مشكل از كجاست؟

ممنون براي راهنمايي

ویرایش شده در توسط DariushGreat
0

به اشتراک گذاری این پست


لینک به پست

بسیار  عالی ممنون دوست عزیز موفق باشید1.png

1

به اشتراک گذاری این پست


لینک به پست
در 21 دقیقه قبل، aminparsian78 گفته است :

بسیار  عالی ممنون دوست عزیز موفق باشید1.png

براي شما كار كرد؟! :o

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط zir4k
      با عرض سلام
      بنده یک قالب رو نصب کردم بر روی سایت و حالا یک سری آیتم در یکی از بخش ها وارد کردم اما post type به صورت انگلیسی هست و قبل از آیتم نشان داده می شود برای مثال
      اسم آیتم : نوشابه و پست تایپی که داخلش آیتم ها رو ثبت میکنیم acc هست وقتی وارد آیتم بشیم لینک رو به این صورت نشون میده :    example.com/acc/نوشابه امکان تغییر پست تایپ هست و چگونه؟
    • توسط amirjahangiri
      سلام دوستان
      کسی راه حلی داره تا تقویم افزونه acf رو از میلادی به شمسی تبدیل کنه؟
      افزونه های پارسی دیت، جلالی تست شد ولی کار نکردن.
    • توسط alimelody
      درود به همگی دوستان و اساتید عزیز 
      یه سوال داشتم درباره ی نمایش نوشته قدیمی، در لیست آخرین مطالب، بعد از آپدیت 
      مثلا یک پست قدیمی رو ادیت کردم چیکار کنم که بیاد بالا
      ایا امکانش هستش که بشه این کارو کرد
      مثلا من یه مطلب دارم با عنوان پلی بک گلچین ابی
      داخلش چندتا آهنگ بیکلام گذاشتم و حالا میخوام به اون لیست، چند تا دیگه پلی بک اضافه کنم ولی میخوام بعد از اضافه کردن بیاد بالا تا کاربر متوجه بشه که این پست ادیت شده
      یا اگه ایده‌ای دارید که بشه یکاری کرد واسه اینکه من نوشته رو ادیت کردم، بعد از آپدیت مطلب،  کاربر متوجه بشه که نوشته آپدیت شده
      البته نمیخوام ی صورت سنجاق باشه
      چون یواش یواش داره تعداد کارهای گلچین از خواننده‌های مختلف اضافه میشه و تا چند ماهه دیگه به 50 تا هم میرسه و بنظرم بعد خیلی گیج کننده میشه و دوست دارم بصورت اتومات انجام بشه
      ممنون میشم راهنماییم کنید 
       
    • توسط ayazsaadatpour2
      سلام خدمت تمام صاحب نظران عزیز.
       
       
      دوستان یه سوالی ازتون داشتم. ما میدونیم که اگه میخوایم صفحه یکی از دسته هامون با صفحه بقیه دسته ها متفاوت باشه فایلی رو با نامه category-slug.php میسازیم و به جای کلمه slug نامک دسته رو قرار میدیم. همچنین اینم بلدیم که وقتی وارد صفحه دسته ای بشیم میتونیم اونو جوری طراحیش کنیم که داخل صفحه ی اون دسته ای به جای نمایش نوشته ها، دسته های دیگر نمایش بدیم. حال سوال من اینجاست آیا میتونیم نوشته ای بسازیم که وقتی واردش بشیم به جای نشان دادن محتوای همون پست، پست های دیگری قرار بدیم؟ اگه میتونیم چگونه؟ آیا از صفحه single.php یه کپی میگریم و نامشو عوض میکنیم و اونطور که میخوایم طراحیش میکنیم؟
       
      ممنون میشم کمکم کنین
    • توسط hadimargo
      سلام. من افزونه ی Wpdiscuz رو برای نظرگذاری نصب کردم، میخوام اینو تو یک صفحه که تو فهرستم هست اضافه کنم. اما نمی دونم چطوری میشه تو مثلا صفحه ی"ارتباط" بزارمش. لطفا راهنمایی کنید.