带有查询SQL的简码WordPress

时间:2019-03-10 17:50:33

标签: php mysql wordpress shortcode

我想创建一个简码,以便可以将我的Coppermine画廊与Wordpress“连接”起来,可惜的是我还没做到

我在帖子中使用它

let
    src1 = #table({"k1", "v1", "z3"}, {{"k11", 11, 10}, {"k12", 12, 20}, {"k13", 13, 30}, {"k14", 14, 40}}),
    cols_all = Table.ColumnNames(src1),
    col_indexed = cols_all{2},
    list_final = Table.Column(src1, col_indexed)
in
    list_final

调用此功能

[cpg album="533"]

这是脚本文件,没有错误,可以正常运行,但是我必须在其中获取专辑ID

function cpg_shortcode( $attr ) {

    shortcode_atts(
  array(
    'album' => 1,
     ), $attr
    );
    return $album_id = $attr['album'];
    return '<script src="http://linklink.net/cpg/api-posts.php"></script>';
}
add_shortcode( 'cpg', 'cpg_shortcode' );

当我尝试从简码中获取专辑ID时,它不起作用

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我复制/粘贴了您的简码,此行按预期工作:

return $album_id = $attr['album'];

返回传递的专辑参数。如果需要,可以使用 extract 将ID直接作为$ album可用:

extract(shortcode_atts(
                array(
    'album' => 1,
                )
                , $attr));

现在这看起来很不对劲:

<script src="http://linklink.net/cpg/api-posts.php"></script>

用于javascript,与php无关。只需包含sql语句并直接在您的简码中输出即可。更改了返回数据的方式(ob_start / get_clean)。另外,就像Dharman提到的那样,请查看如何安全地执行sql语句。

function cpg_shortcode($attr) {

    extract(shortcode_atts(
                    array(
        'album' => 1,
                    )
                    , $attr));

    ob_start();

$query = mysql_query("SELECT * FROM `cpgq7_pictures` WHERE aid=$album ORDER BY ctime DESC LIMIT 0 , 3");
    if (mysql_num_rows($query) == 0) {
        echo 'No hay fotos';
    } else {
        echo '<h6>';
        while ($row = mysql_fetch_array($query)) {
            $domain = "http://linklink.net/cpg";
            $album_url = "$domain/thumbnails.php?album=$album#content";
            $album_img = "$domain/albums/" . $row['filepath'] . 'thumb_' . $row['filename'];
            echo '<a href="' . $album_url . '" target="_blank"><img src="' . $album_img . '" alt="" /></a>';
        }
        echo '<a href="' . $album_url . '" target="_blank"><img src="https://i.imgur.com/4wmomUt.png" alt="" /></a></h6>';
    }
    return ob_get_clean();
}
add_shortcode('cpg', 'cpg_shortcode');