类内调用函数

问题描述 投票:0回答:1

我正在尝试编写一个脚本,从 WordPress 插件中调用类 CFF_Feed_Saver_Manager 中的函数clear_single_feed_cache(),但无法使其工作。我不确定这是否是因为我尝试调用的函数在函数内有另一个类。请帮忙。这是我尝试调用的类和函数,下面是我尝试调用该函数的代码。 类别与功能:

<?php 
 namespace CustomFacebookFeed\Builder;

use CustomFacebookFeed\Admin\Traits\CFF_Feed_Templates_Settings;
use CustomFacebookFeed\SB_Facebook_Data_Encryption;
use CustomFacebookFeed\SB_Facebook_Data_Manager;
use CustomFacebookFeed\CFF_Events_Parser;
   
class CFF_Feed_Saver_Manager {
    use CFF_Feed_Templates_Settings;

public static function hooks() {
            add_action( 'wp_ajax_cff_feed_saver_manager_clear_single_feed_cache', array( 'CustomFacebookFeed\Builder\CFF_Feed_Saver_Manager', 'clear_single_feed_cache' ) );}

    public static function clear_single_feed_cache() {
        $feed_id = '12';
            $feed_cache = new \CustomFacebookFeed\CFF_Cache( $feed_id );
            $feed_cache->clear( 'all' );
            $feed_cache->clear( 'posts' );
    }
    } ?>

我的代码:

add_action( 'run_cff_clear_feed', 'myCFFclearFeed');

function myCFFclearFeed() {
   require_once '/var/www/wp-content/plugins/custom-facebook-feed-pro/inc/Builder/CFF_Feed_Saver_Manager.php';
      require_once '/var/www/wp-content/plugins/custom-facebook-feed-pro/inc/CFF_Cache.php';
    $object = new CFF_Feed_Saver_Manager();
$object->clear_single_feed_cache();
                } ?> 
php wordpress class
1个回答
0
投票

感谢@ChrisHaas 解决了这个问题。解决方案是使用完全限定的类名,因为它是静态函数,所以正确的代码是:

<?php 
add_action( 'wp_ajax_nopriv_run_cff_clear_feed', 'myCFFclearFeed');

function myCFFclearFeed() {
   require_once '/var/www/wp-content/plugins/custom-facebook-feed-pro/inc/Builder/CFF_Feed_Saver_Manager.php';
      require_once '/var/www/wp-content/plugins/custom-facebook-feed-pro/inc/CFF_Cache.php';
\CustomFacebookFeed\Builder\CFF_Feed_Saver_Manager::clear_single_feed_cache();
                }
?> 

© www.soinside.com 2019 - 2024. All rights reserved.