我想从http://example.com/project_name/abc_15_11_02_3/获得“abc_15_11_02_3”。我怎么能这样做?
答案 0 :(得分:49)
您可以使用以下方法获得该信息:
<?php $post_slug = get_post_field( 'post_name', get_post() ); ?>
或者你可以使用这个简单的代码:
<?php
global $post;
$post_slug = $post->post_name;
?>
答案 1 :(得分:20)
如果您想从帖子获取帖子,请使用:
global $post;
echo $post->post_name;
如果您希望获得帖子在圈外的帖子,请使用:
$post_id = 45; //specify post id here
$post = get_post($post_id);
$slug = $post->post_name;
答案 2 :(得分:13)
您可以通过多种方式执行此操作:
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 );
我希望以上方法能为您提供帮助。
答案 3 :(得分:5)
Wordpress:获取帖子/页面slug
<?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(); } ?>
答案 4 :(得分:2)
您可以从post对象中检索它,如下所示:
global $post;
$post->post_name;
答案 5 :(得分:2)
根据WP Codex进行此操作的最佳选择如下。
使用全局变量$ post:
<?php
global $post;
$post_slug = $post->post_name;
?>
答案 6 :(得分:1)
使用全局变量$ post
<?php
global $post;
$post_slug=$post->post_name;
?>
答案 7 :(得分:1)
这个简单的代码对我有用:
$postId = get_the_ID();
$slug = basename(get_permalink($postId));
echo $slug;
答案 8 :(得分:0)
这是最先进的更新版本,涵盖了许多情况:
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;
这是从最佳答案中收集的信息,而我的更新很少。
答案 9 :(得分:0)
我遇到了这种方法,并使用它来使div ID成为循环内的子弹名称:
<?php $slug = basename( get_permalink() ); echo $slug;?>