WPPermalink-wpmen.ir_

شما اگر از سایتی استفاده می کنید که با  وردپرس کار می کند اگر بخواهید یک آدرس URL  پست را نمایش دهید می توانید از permalink استفاده کنید.دقت داشته باشید که تابع the permalink باید در درون حلقه قرار داده شود.

این تابع جزو پرکاربردترین توابع وردپرس تمام سایت ها می باشد .

 از نسخه ۱.۲.۰ به وردپرس اضافه شده است.

این تابع در اصل چاپ تابع ()get_the_permalink می باشد

 

ساختار

 <?php the_permalink(); ?>

  پارامترها

تا قبل از ورژن ۴.۴ این تابع  هیچ پارامتری نداشت از ورژن ۴.۴ به بعد پارامتر `post$` افزوده شد


مثال ها

   نمایش آدرس بدون ایجاد لینک

This address for this post is: 
<?php the_permalink(); ?>

نمایش لینک آدرس پست

<a href="<?php the_permalink(); ?>">permalink</a>


آدرس لینک با یک برچسب

 

<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a>

سورس ()the_permalink

function the_permalink( $post = 0 ) {
	        /**
                * Filter the display of the permalink for the current post.
	         *
	         * @since 1.5.0
	         * @since 4.4.0 Added the `$post` parameter.
	         *
             * @param int|WP_Post $post      Post ID, WP_Post object, or 0. Default 0.
             */
        echo esc_url( apply_filters( 'the_permalink', get_permalink( $post ), $post ) );
    }


	         * @param int|WP_Post $post      Post ID, WP_Post object, or 0. Default 0.
	         */
        echo esc_url( apply_filters( 'the_permalink', get_permalink( $post ), $post ) );
	}


 

سورس ()get_the_permalink

function get_permalink( $post = 0, $leavename = false ) {
    $rewritecode = array(
        '%year%',
        '%monthnum%',
        '%day%',
        '%hour%',
        '%minute%',
        '%second%',
        $leavename? '' : '%postname%',
        '%post_id%',
        '%category%',
        '%author%',
        $leavename? '' : '%pagename%',
    );
 
    if ( is_object( $post ) && isset( $post->filter ) && 'sample' == $post->filter ) {
        $sample = true;
    } else {
        $post = get_post( $post );
        $sample = false;
    }
 
    if ( empty($post->ID) )
        return false;
 
    if ( $post->post_type == 'page' )
        return get_page_link($post, $leavename, $sample);
    elseif ( $post->post_type == 'attachment' )
        return get_attachment_link( $post, $leavename );
    elseif ( in_array($post->post_type, get_post_types( array('_builtin' => false) ) ) )
        return get_post_permalink($post, $leavename, $sample);
 
    $permalink = get_option('permalink_structure');
 
    /**
     * Filter the permalink structure for a post before token replacement occurs.
     *
     * Only applies to posts with post_type of 'post'.
     *
     * @since 3.0.0
     *
     * @param string  $permalink The site's permalink structure.
     * @param WP_Post $post      The post in question.
     * @param bool    $leavename Whether to keep the post name.
     */
    $permalink = apply_filters( 'pre_post_link', $permalink, $post, $leavename );
 
    if ( '' != $permalink && !in_array( $post->post_status, array( 'draft', 'pending', 'auto-draft', 'future' ) ) ) {
        $unixtime = strtotime($post->post_date);
 
        $category = '';
        if ( strpos($permalink, '%category%') !== false ) {
            $cats = get_the_category($post->ID);
            if ( $cats ) {
                usort($cats, '_usort_terms_by_ID'); // order by ID
 
                /**
                 * Filter the category that gets used in the %category% permalink token.
                 *
                 * @since 3.5.0
                 *
                 * @param stdClass $cat  The category to use in the permalink.
                 * @param array    $cats Array of all categories associated with the post.
                 * @param WP_Post  $post The post in question.
                 */
                $category_object = apply_filters( 'post_link_category', $cats[0], $cats, $post );
 
                $category_object = get_term( $category_object, 'category' );
                $category = $category_object->slug;
                if ( $parent = $category_object->parent )
                    $category = get_category_parents($parent, false, '/', true) . $category;
            }
            // show default category in permalinks, without
            // having to assign it explicitly
            if ( empty($category) ) {
                $default_category = get_term( get_option( 'default_category' ), 'category' );
                $category = is_wp_error( $default_category ) ? '' : $default_category->slug;
            }
        }
 
        $author = '';
        if ( strpos($permalink, '%author%') !== false ) {
            $authordata = get_userdata($post->post_author);
            $author = $authordata->user_nicename;
        }
 
        $date = explode(" ",date('Y m d H i s', $unixtime));
        $rewritereplace =
        array(
            $date[0],
            $date[1],
            $date[2],
            $date[3],
            $date[4],
            $date[5],
            $post->post_name,
            $post->ID,
            $category,
            $author,
            $post->post_name,
        );
        $permalink = home_url( str_replace($rewritecode, $rewritereplace, $permalink) );
        $permalink = user_trailingslashit($permalink, 'single');
    } else { // if they're not using the fancy permalink option
        $permalink = home_url('?p=' . $post->ID);
    }
 
    /**
     * Filter the permalink for a post.
     *
     * Only applies to posts with post_type of 'post'.
     *
     * @since 1.5.0
     *
     * @param string  $permalink The post's permalink.
     * @param WP_Post $post      The post in question.
     * @param bool    $leavename Whether to keep the post name.
     */
    return apply_filters( 'post_link', $permalink, $post, $leavename );
}

 

تاریخ آخرین بروزرسانی : ۲۲ اردیبهشت ۱۳۹۵
میلاد میلادی

باور هایت را که پرورش دهی به هرچیزی دست خواهی یافت.

ارسال نظر

آدرس الکترونیکی شما نمایش داده نمی شود *

Time limit is exhausted. Please reload CAPTCHA.