Php 基于外部名称更新Wordpress短代码

Php 基于外部名称更新Wordpress短代码,php,wordpress,function,shortcode,Php,Wordpress,Function,Shortcode,我有一个自定义的post类型,名为Fruit,我希望创建一个短代码,它将根据我所称的短代码进行更新。例如,自定义的帖子类型称为水果,我有一个水果列表作为帖子。我想用快捷码链接到那篇文章 add_shortcode('apple', 'apple'); function apple() { return '<a href="http://example.com/fruit/apple/>Apple</a>'; } add_shortcode('apple','apple'

我有一个自定义的post类型,名为Fruit,我希望创建一个短代码,它将根据我所称的短代码进行更新。例如,自定义的帖子类型称为水果,我有一个水果列表作为帖子。我想用快捷码链接到那篇文章

add_shortcode('apple', 'apple');
function apple()
{
return '<a href="http://example.com/fruit/apple/>Apple</a>';
}
add_shortcode('apple','apple');
函数apple()
{
返回“”;
}

现在我可以为orange、bannna和其他所有水果编写一个短代码,但我想知道我如何才能做到这一点,这样就可以编写一个短代码,取决于我是否将[apple]、[orange]、[mango]的url更新为

我建议创建一个名为[fruit]的短代码,并有一个名为“fruit”的参数,这样所有水果只需要一个短代码

function fruit( $atts ) {
     extract( shortcode_atts( array(
          'fruit' => 'apple'
     ), $atts ) );

     if($fruit == "apple") {
         $return = "<a href='http://example.com/fruit/apple/'>Apple</a>";
     } elseif($fruit == "orange") {
         $return = "<a href='http://example.com/fruit/orange/'>Orange</a>";
     }

     return $return;
}
add_shortcode( 'fruit', 'fruit' );
功能水果($atts){
提取(短码)附件(数组)(
“水果”=>“苹果”
)美元(附件);;
如果($水果==“苹果”){
$return=“”;
}elseif($水果==“橙色”){
$return=“”;
}
return$return;
}
添加_短代码('fruit','fruit');
然后您可以调用快捷码[fruit-fruit='apple']或[fruit-fruit='orange']

编辑:

function fruit() {
    $label = sanitize_text_field($_GET['slug']);
    $slug  = strtolower($_GET['slug']);


    return "<a href='http://example.com/fruit/" . $slug . "/'>" . $label . "</a>";
}
add_shortcode( 'fruit', 'fruit' );
函数水果(){
$label=sanitize_text_字段($_GET['slug']);
$slug=strtolower($_GET['slug']);
返回“”;
}
添加_短代码('fruit','fruit');

Thank you的可能重复,尽管我试图避免的是必须执行许多if-else语句。水果不是我实际的自定义帖子类型,只是用作我的示例。在我的实际自定义帖子类型中,我将有100多篇帖子,那么有没有办法抓取URL slug并将其替换为apple,这样我就不必每次为所有帖子添加新的帖子类型时都编写一行代码?我添加了一个编辑,这就是你想要的?您可能需要编辑
$\u GET['slug']
部分。