我有一个主题,它有一个页面显示关键字分类法,名为taxonomy-keyword.php
. 在本页中,我实例化了一种称为KeywordPage
. 看起来是这样的:
namespace MyTheme\\ViewModels;
class KeywordPage {
__construct() {
wp_enqueue_script(
\'keywordpage_script\',
get_stylesheet_directory_uri() . \'_inc/js/KeywordPage.js\',
array(\'jquery\'),
\'\');
add_action(\'wp_ajax_get_more_posts\', array(__CLASS__, \'get_more_posts_async\'));
add_action(\'wp_ajax_nopriv_get_more_posts\', array(__CLASS__, \'get_more_posts_async\'));
// other initialization
}
public static function get_more_posts_async() {
// Process AJAX
}
}
我遇到的问题是AJAX响应总是0。这似乎表明wordpress找不到对操作的回调。
现在,我几乎不了解AJAX,更不用说wordpress如何处理它了,但我知道KeywordPage
脚本运行正常get_more_posts_async()
适当地处理和响应AJAX调用,因为如果我放置函数和add_action()
打电话进来functions.php
一切都按预期进行。
我不明白的是,为什么当操作位于构造函数中时,wordpress似乎无法调用适当的回调?我不想仅仅把这些东西放在functions.php
. 尽管我已经知道它是可行的,但我想让主题尽可能地可维护。
提前感谢您的投入、帮助和指导。