انجمن


اجرای یک function زمان ارسال پست جدید  (۲ نوشته)

  • mgh67

    آفلاین
    عضو
    تعداد نوشته‌ها: ۱۱
    # نوشته شده: ۱۰ سال پیش
    ۹ شهریور ۱۳۹۳ - ۱۴:۴۸

    من می خوام یک پلاگین ساده بسازم که هرگاه یک پست جدید (نه صفحه جدید )ایجاد شد و منتشر شد(نه ذخیره در پیشنویس) یک کلاس اجرا کند اما هرکاری می کنم نه اروری داده می شود و نه کلاس اجراء می شود .
    ` add_action( 'publish_post', 'send_post' );
    add_filter ( 'publish_post', 'send_post' );

    function send_post($post_ID){

    $meta_values = get_post_meta($post_ID, 'is_notified', true);

    if($meta_values!='yes'){

    $pub_post = get_post($post_ID);global $wpdb;
    $post_title=$pub_post->post_title;

    if ($pub_post->post_status == 'publish')
    {
    if($pub_post->post_type=="post")
    {
    $pluginName = 'bitly/bitly.php';
    if (is_plugin_active($pluginName)) {
    remove_all_filters('post_link');
    }
    if($post_thumbnail_id!="")
    {
    $first_img=wp_get_attachment_url(get_post_thumbnail_id( $post_ID ));
    }
    else
    {
    $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $postpp->post_content, $matches);
    $first_img = $matches [1] [0];
    }

    $content = $postpp->post_content;
    $title = $postpp->post_title;

    $content = preg_replace("/(<)([img])(\w+)([^>]*>)/", "", $content);
    $content = apply_filters('the_content', $content);
    $content = str_replace(']]>', ']]>', $content);
    $content=strip_tags($content);
    $content=html_entity_decode($content, "UTF-8");

    $title = preg_replace("/(<)([img])(\w+)([^>]*>)/", "", $title);
    $title = apply_filters('the_content', $title);
    $title = str_replace(']]>', ']]>', $title);
    $title=strip_tags($title);
    $title=html_entity_decode($title, "UTF-8");

    $title=substr($title, 0, 50);
    $des=substr($content, 0, 100);

    //publish post
    $my_var = new Myclass();
    $my_var->Setcontent($title,$des,$content,$first_img);
    if($my_var->Send())
    {
    $response="ok";
    }
    else
    {
    $response="Your server";
    }

    $time=time();
    $post_options=array(
    'postid'=>$post_ID,
    'publishtime'=>$time,
    'status'=>$response."TEXT"
    );
    update_option('post_logs', $post_options);
    }

    }

    if($Rreturns){
    add_post_meta($post_ID, 'is_notified', 'yes');
    }
    }
    }

  • Masoud

    آفلاین
    کلیددار
    تعداد نوشته‌ها: ۸۱۵
    تشکر شده: ۶۳۲ بار
    # نوشته شده: ۱۰ سال پیش
    ۱۱ شهریور ۱۳۹۳ - ۱۷:۰۷

    سلام
    به لینک زیر مراجعه کنید:
    http://codex.wordpress.org/Plugin_API/Action_Reference/publish_post

درباره‌ی این موضوع



برچسب‌ها

هیچ برچسبی نیست.