小编Sil*_*cer的帖子

使用 admin-ajax.php 的 AJAX 请求

我正在尝试在 WordPress 插件中执行 AJAX 请求。该请求是使用自定义短代码在嵌入在文章中的首页上发起的。

我尝试将文档本教程中的信息结合起来。

但是,在测试该方法时出了点问题……没有调用 AJAX 查询挂钩。

这就是我的page.php脚本被调用以进行短代码交付的方式:

add_shortcode('testshortcode', 'TestShortCodeFunction');

function TestShortCodeFunction($attributes)
{
   ob_start();
   include(__DIR__.'/page.php');
   return ob_get_clean();
}
Run Code Online (Sandbox Code Playgroud)

这是我压缩的测试脚本page.php

<?php

    add_action('wp_ajax_test', 'Test');
    add_action('wp_ajax_nopriv_test', 'Test');

    // do_action('wp_ajax_nopriv_test'); this calls Test()

    function Test()
    {
        echo 'Hallo';
        die();
    }
?>

<script type='text/javascript'>

    jQuery(document).ready(function() {

        console.log("JS query started");

        // The following does not call test()
        jQuery.ajax({
            type: "POST",
            url: "http://127.0.0.1/wordpress/wp-admin/admin-ajax.php?action=test",
            success: function(data) {
                console.log("Query returned: "+data);
            }
        });

    });

</script>
Run Code Online (Sandbox Code Playgroud)

控制台上的输出是:

JS query started …
Run Code Online (Sandbox Code Playgroud)

javascript php ajax wordpress extjs

1
推荐指数
1
解决办法
1万
查看次数

在C99中的宏中使用true和false

我正在使用支持C99子集的自定义gcc编译器编写一些代码.使用编译器选项我定义了一个像这样的宏:

ENABLE_LOGGING=true
Run Code Online (Sandbox Code Playgroud)

我在我的代码中使用它,如下所示:

#if ENABLE_LOGGING
#define LOG(foo) { log(foo); }
#else
#define LOG(foo)
#endif
Run Code Online (Sandbox Code Playgroud)

事实证明,这不能可靠地运作.有时使用LOG包含代码,有时使用emtpy LOG(相同的项目,相同的编译器设置).

将宏参数更改为:

ENABLE_LOGGING=1
Run Code Online (Sandbox Code Playgroud)

一切正常.

据我所知,true预处理器可能不知道.但是,为什么它最常用?为什么在编译它不起作用的模块时,我没有得到任何警告或错误?

c boolean c99 c-preprocessor preprocessor-directive

1
推荐指数
1
解决办法
179
查看次数

CHAR_BIT替换

CHAR_BIT定义每个字符的位数.但它是一个古老的宏.在最近的C++标准中已经替换了类似的宏.

CHAR_BIT在C++ 11/14/17中是否有更现代的替代品?

c++ c++11 c++14 c++17

1
推荐指数
1
解决办法
718
查看次数

constexpr条件不恒定?

我编写了以下C++ 17代码:

constexpr bool gDebug = true;

template <typename T> constexpr const T& Select(const bool pCondition, const T& a, const T& b)
{
   if constexpr (pCondition)
   {
      return a;
   }
   else
   {
      return b;
   }
}
Run Code Online (Sandbox Code Playgroud)

然后我这样打电话:

int c = Select<QString>(gDebug, a, b); // In .cpp
Run Code Online (Sandbox Code Playgroud)

我找到error: ‘pCondition’ is not a constant expression了这if constexpr条线.

为什么?这不应该工作吗?

c++ constexpr c++17 if-constexpr

0
推荐指数
1
解决办法
324
查看次数

如何删除函数中创建的动态数组

我必须编写一个程序(不使用向量,也不使用结构或OOP)来计算两个多项式的和与乘积。这是我的代码:

//Task 4.19 & 4.20
#include <iostream>
#include <cmath>
double* definePoly(char& symbol, char& coef, int& k)
{
    std::cout << "deg(" << symbol << "(x)) = ";
    std::cin >> k;
    symbol++;
    double* a = new double[k];
    for (int i = k; i >= 0; i--)
    {
        std::cout << coef << "_{" << i << "} = ";
        std::cin >> a[i];
    }
    coef++;
    return a;
}
void printPoly(int n, double* P, char& symbol)
{
    symbol--;
    std::cout << symbol << "(x)=";
    for (int …
Run Code Online (Sandbox Code Playgroud)

c++ memory dynamic

0
推荐指数
1
解决办法
109
查看次数