WordPress add_filter не работает для robots_txt в localhost - PullRequest
0 голосов
/ 05 февраля 2019

Я новичок в разработке плагинов для WordPress, и у меня возникло препятствие в этом вопросе.Дело в том, что использование фильтра add_filter('robots_txt', 'AddToRobotsTxt', 10, 2); не создает файл robots.txt на моем локальном хосте, я не знаю, в чем проблема.Я установил права доступа к каталогу на

<Directory />
    AllowOverride All
    Require all granted
</Directory>

Так как я думал, что это может быть причиной проблемы, я прилагаю остальную часть моего кода.

public function allRobotSettings(){


    register_setting('energizer_robot_group', 'energizer_robots-name');

    add_settings_section('energizer_robot_index', 'Robot Setting', array( $this->callbacks_mngr, 'robotSectionManager' )
    , 'energizer_robots');

    add_settings_field('robot_field_manager', 'Robot Document', array( $this->callbacks_mngr, 'robotInputboxField' ),
    'energizer_robots', 'energizer_robot_index');
}

Эта функция для настройки наHTML страница.И он вызывает эти функции.

public function robotSectionManager()
{
    echo 'Edit your robot.txt file here.';
}

public function robotInputboxField()
{
    $data=get_option('energizer_robots-name');  

    add_filter( 'robots_txt', 'AddToRobotsTxt',10,2);
    $content=get_option('energizer_robots-name');   

    echo '<div ><input type="text"  name="energizer_robots-name" value="'. $content.'" 
    style="height: 150px;
    width: 100%;
    box-sizing: border-box;
    border: 2px solid #ccc;
    border-radius: 4px;
    background-color: #f8f8f8; ></div>';
}
public function AddToRobotsTxt($robotstext, $public) {
    $robotsrules = get_option('energizer_robots-name');
    $new_value=$robotstext . $robotsrules;
    update_option( 'energizer_robots-name', $new_value);

    return $robotstext . $robotsrules;
}

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 05 февраля 2019

Просто попробуйте добавить это в базовый файл вашего плагина, его можно переместить в класс при инициализации.Также, пожалуйста, создайте один файл robots.txt, если его там нет.

add_filter( 'robots_txt', 'AddToRobotsTxt',10,2);

function AddToRobotsTxt($robotstext, $public) {

    $robotsrules = get_option('energizer_robots-name');
    $new_value=$robotstext . $robotsrules;
    update_option( 'energizer_robots-name', $new_value);

    return $robotstext . $robotsrules;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...