#php #wordpress
#php #wordpress
Вопрос:
Я создаю свой собственный плагин для WordPress. Я сделал программу включения выключения следующим образом:
require 'connection.php';
$optionQuery = "SELECT * FROM wpex12_achan_plugin";
$dataQuery = $connection->query($optionQuery);
$data = array();
if( mysqli_num_rows($dataQuery) ) {
$data = $dataQuery->fetch_array(MYSQLI_ASSOC);
};
//option on off
$option1 = array(
'name' => 'option1',
'options' => array(
array(
'text' => 'off',
'value' => 0,
'checked' => ($data['shareButton'] == 0) ? 'checked="checked"' : ''
),
array(
'text' => 'on',
'value' => 1,
'checked' => ($data['shareButton'] == 1) ? 'checked="checked"' : ''
)
)
);
add_action("admin_menu", "addMenu");
function addMenu(){
add_menu_page("Achan Plugin", "Achan Ganteng", 4, "example-options", "insideMenu", plugins_url('/image/icon.png',__FILE__));
}
function insideMenu(){
global $connection, $option1, $dataQuery, $data;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h1>Welcome To Achan Custom Plugin</h1>
<form action="" method="POST">
<div class ="share-button">
<label for="buttonshare">Share Social Widget inside Forum: </label> amp;nbsp
<?php if(is_array($option1) amp;amp; $option1['options']) : ?>
<?php foreach ($option1['options'] as $option) : ?>
<label class="checkbox">
<input type="radio" name="<?php echo $option1 ['name'] ?>" value ="<?php echo $option['value'] ?>" <?php echo $option['checked'] ?> >
<span class="text"><?php echo $option['text'] ?></span>
</label>
<?php endforeach ?>
<?php endif ?>
</div>
<br />
<div class="submit">
<input type="submit" value="Submit" name="submitClick" class="button">
</div>
</form>
</body>
</html>
<?php
//if submit clicked
if(isset($_POST['submitClick'])){
$getValue = isset ($_POST['option1']) ? $_POST['option1'] : 0;
if(mysqli_num_rows($dataQuery)){
$updateQuery = "UPDATE wpex12_achan_plugin SET shareButton = $getValue";
}
else{
$updateQuery = "INSERT INTO wpex12_achan_plugin (shareButton) VALUES ($getValue)";
}
if(!$connection -> query($updateQuery)){
echo ("Error description" . $mysqli -> error);
}
$connection -> close();
header('Location: http://localhost/nameofweb/wp-admin/admin.php?page=example-options');
}
}
?>
а также я сделал такой крюк:
<?php
require 'connection.php';
$optionQuery = "SELECT * FROM wpex12_achan_plugin";
$dataQuery = $connection->query($optionQuery);
$data = array();
if( mysqli_num_rows($dataQuery) ) {
$data = $dataQuery->fetch_array(MYSQLI_ASSOC);
};
add_action("bbp_theme_before_topic_author" , "insertSocialShare");
function insertSocialShare(){
global $data;
if($data['shareButton']){
echo "hello";
}
}
?>
Я знаю, что программа работает нормально, потому что я уже пробовал ее внутри functions.php внутри папки темы. Но я не хочу вставлять код в functions.php папка с темой. Я хочу запускать всю программу только в моей папке плагинов.
Я уже пытался, вставить код подключения, удалить require ‘connection.php ‘; и измените его на require functions.php вот так:
require 'nameofweb/wp-content/themes/mythemes/functions.php';
Но не работает.
Ответ №1:
Сначала вы должны создать свой собственный плагин WordPress. Создайте новую папку внутри вашего wp-content/plugins/
каталога. Создайте PHP-файл с тем же именем, что и имя каталога, т.Е..
wp-content/plugins/my-first-plugin/my-first-plugin.php
.
Теперь добавьте комментарий заголовка плагина в ваш недавно созданный php-файл. Это специально отформатированный комментарий к блоку PHP, который содержит метаданные о плагине, такие как его название, автор, версия, лицензия и т. Д. Вот пример:
<?php
/**
* Plugin Name: My First Plugin
* Plugin URI: http://www.mywebsite.com/my-first-plugin
* Description: The very first plugin that I have ever created.
* Version: 1.0
* Author: Your Name
* Author URI: http://www.mywebsite.com
*/
Затем добавьте свой код ниже. После сохранения файла вы должны увидеть свой плагин в списке, и вы можете включить его на панели администратора. Включение вашего плагина позволит вам использовать ваши функции, действия и короткие коды в любом шаблоне WordPress.
Если вы собираетесь начать создавать собственные плагины, я настоятельно рекомендую вам ознакомиться с тем, как работают действия и фильтры, и какие из них доступны для использования в Кодексе API.
Руководство по плагинам также очень ценно для всего, что связано с плагинами WordPress.
Для взаимодействия с базой данных WP вы можете использовать $wpdb. Этот класс используется для взаимодействия с базой данных WordPress без необходимости использования необработанных инструкций SQL.
Комментарии:
1. А, понятно. Я нашел решение благодаря вашему ответу. Все, что мне нужно сделать, это создать functions.php , внутри functions.php есть много хуков WordPress, таких как add_action(). и require ‘функции. php’ внутри my-first-plugin.php . в двух словах, речь идет о WordPress по умолчанию. Код будет выполняться, если у него одинаковое имя, я имею в виду имя плагина папки и имя файла.