【问题标题】:Update Wordpress shortcode based off name根据名称更新 Wordpress 简码
【发布时间】:2014-03-19 02:12:18
【问题描述】:

我有一个名为 Fruit 的自定义帖子类型,我希望创建一个短代码,该短代码将根据我称之为短代码的内容进行更新。例如,自定义帖子类型称为水果,我有一个水果列表作为帖子。我希望简码链接到该水果帖子。

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

现在我可以为橙子、bannna 和其他所有水果编写一个短代码,但我想知道如何制作这样才能编写一个短代码,具体取决于我是否输入 [apple]、[orange]、[mango ] 它会将 url 更新为?

【问题讨论】:

标签: php wordpress function shortcode


【解决方案1】:

我建议创建一个名为 [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' );

然后您可以调用短代码 [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' );

【讨论】:

  • 谢谢,虽然我试图避免的是不得不做这么多的 if else 语句。 Fruit 不是我实际的自定义帖子类型,只是用作我的示例。在我实际的自定义帖子类型中,我将有超过 100 多个帖子,所以有没有办法抓取 URL slug 并将其替换为苹果,这样我每次添加新帖子时都不必编写代码行输入所有帖子?
  • 我添加了一个编辑,这是您要找的更多内容吗?您可能需要编辑 $_GET['slug'] 部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2021-07-20
  • 1970-01-01
相关资源
最近更新 更多