programing

WordPress에서 포스트슬러그를 얻는 방법

sourcetip 2023. 4. 2. 20:56
반응형

WordPress에서 포스트슬러그를 얻는 방법

http://example.com/project_name/abc_15_11_02_3/에서 "http_15_11_02_3"을 받고 싶습니다.어떻게 해야 하죠?

다음의 방법으로 취득할 수 있습니다.

<?php $post_slug = get_post_field( 'post_name', get_post() ); ?>

또는 다음과 같은 간단한 코드를 사용할 수 있습니다.

<?php
    global $post;
    $post_slug = $post->post_name;
?>

루프에서 포스트의 슬러그를 가져오려면 다음을 사용합니다.

global $post;
echo $post->post_name;

루프 밖에서 포스트의 슬러그를 가져오려면 다음을 사용합니다.

$post_id = 45; //specify post id here
$post = get_post($post_id); 
$slug = $post->post_name;

여기에는 다음과 같은 여러 가지 방법이 있습니다.

1- Wordpress 전역 변수를 사용할 수 있습니다.$post:

<?php 
global $post;
$post_slug=$post->post_name;
?>

2 - 또는 다음을 사용할 수 있습니다.

$slug = get_post_field( 'post_name', get_post() );

3-또는 전체 URL을 얻은 후 PHP 기능을 사용합니다.parse_url:

$url      = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$url_path = parse_url( $url, PHP_URL_PATH );
$slug = pathinfo( $url_path, PATHINFO_BASENAME );

위의 방법이 도움이 되기를 바랍니다.

이 간단한 코드가 나에게 효과가 있었다.

$postId = get_the_ID();
$slug = basename(get_permalink($postId));
echo $slug;

WP Codex에 따르면 이를 위한 최선의 방법은 다음과 같습니다.

글로벌 변수 $post를 사용합니다.

<?php 
    global $post;
    $post_slug = $post->post_name;
?>

워드프레스:포스트/페이지 슬래그 가져오기

<?php 
// Custom function to return the post slug
function the_slug($echo=true){
  $slug = basename(get_permalink());
  do_action('before_slug', $slug);
  $slug = apply_filters('slug_filter', $slug);
  if( $echo ) echo $slug;
  do_action('after_slug', $slug);
  return $slug;
}
?>
<?php if (function_exists('the_slug')) { the_slug(); } ?>

다음과 같이 Post 개체에서 가져올 수 있습니다.

global $post;
$post->post_name;

글로벌 변수 $post 사용

<?php 
    global $post;
    $post_slug=$post->post_name;
?>

다음은 많은 경우에 적용되는 최신 버전 및 최신 버전입니다.

if(!function_exists('the_slug')):
    function the_slug($post_id=false, $echo=true) {
        global $product, $page;

        if(is_numeric($post_id) && $post_id == intval($post_id)) {} else {
            if(!is_object($post_id)){}else if(property_exists($post_id, 'ID')){
                $post_id = $post_id->ID;
            }
            if(empty($post_id) && property_exists($product, 'ID')) $post_id = $product->ID;
            if(empty($post_id)) $post_id =  get_the_ID();

            if(empty($post_id) && property_exists($page, 'ID')) $post_id =  $page->ID;
        }

        if(!empty($post_id))
            $slug = basename(get_permalink($post_id));
        else
            $slug = basename(get_permalink());
        do_action('before_slug', $slug);
        $slug = apply_filters('slug_filter', $slug);
        if( $echo ) echo $slug;
        do_action('after_slug', $slug);
        return $slug;
      }
endif;

이것은 최적의 답변과 업데이트의 일부를 모은 것입니다.

우연히 이 방법을 알게 되었고, 루프 내에서 div ID를 slug 이름으로 만들기 위해 사용합니다.

<?php $slug = basename( get_permalink() ); echo $slug;?>
<?php
$args = array(
    'post_type' => 'your_postype',
    'orderby' => 'title',
    'order' => 'ASC',
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
    while ( $the_query->have_posts() ) : $the_query->the_post(); 
        global $post;
        $post_slug=$post->post_name;
        echo $post_slug;
    endwhile;
    wp_reset_query();
endif;
?>

언급URL : https://stackoverflow.com/questions/33842251/how-to-get-post-slug-from-post-in-wordpress

반응형