반응형
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
반응형
'programing' 카테고리의 다른 글
대응: useState 또는 useRef? (0) | 2023.04.02 |
---|---|
@RibbonClient와 @LoadBalanced의 차이점 (0) | 2023.04.02 |
옵션을 동적으로 변경할 때 IE 선택 문제를 수정하는 방법 (0) | 2023.04.02 |
Mongo에서 "not null"을 어떻게 조회합니까? (0) | 2023.04.02 |
Node.js 및 Express를 사용한 간단한 API 호출 (0) | 2023.04.02 |