我需要创建一个WordPress插件,在单击管理面板中的按钮时调用PHP函数.我一直在寻找编写基本WordPress插件和添加管理面板的教程,但我仍然不明白如何在我的插件中将按钮注册到特定功能.
这是我到目前为止所拥有的:
/*
Plugin Name:
Plugin URI:
Description:
Author:
Version: 1.0
Author URI:
*/
add_action('admin_menu', 'wc_plugin_menu');
function wc_plugin_menu(){
add_management_page('Title', 'MenuTitle', 'manage_options', 'wc-admin-menu', 'wc_plugin_options');
}
function wc_plugin_options(){
if (!current_user_can('manage_options')) {
wp_die( __('You do not have sufficient permissions to access this page.') );
}
echo '<div class="wrap">';
echo '<button>Call Function!</button>'; //add some type of hook to call function
echo '</div>';
}
function button_function()
{
//do some stuff
}
?>
Run Code Online (Sandbox Code Playgroud) 我在Wordpress中有这个.htaccess文件.它位于/ public_html /(web root).我需要从重写引擎中排除一个文件夹(csNewsAd).我已经尝试过这个,基于SO在此类似的另一个问题,但根本没有用.
AddHandler x-httpd-php5 .php
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/csNewsAd($|/) - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
有什么建议?
内部/ csNewsAd中有另一个.htaccess用于密码保护:
AuthName "Clasificados"
AuthType "basic"
AuthUserFile /home/ig000192/public_html/csNewsAd/.passwd
Require valid-user
经过长时间的搜索,我找到了这篇文章:
谈论在woocommerce中创建webhooks以通知脚本做...某事......并不重要.
我还阅读了我在woocommerce docs中可以找到的所有内容.
但是我需要一些关于在另一端实际编写处理程序的文档或指导.
我的目标是收到付款完成通知,然后在购买后将用户移动到不同的列表(客户列表而不是潜在客户列表) - 我在内部使用PHPlist作为我的列表管理器.我很确定我可以处理那部分,如果我能让听众继续...
但是..我不知道Web钩子发送了什么,如何让它发送我想要的数据,以及如何处理监听器.
我也发现了这个:
哪 - 可能有用吗?我仍然不确定从哪里开始听,或者如果这篇文章仍有效,鉴于它已经有几年了......
谢谢!
- 亚伦
如果用户(admin)在wordpress站点中处于非活动状态15分钟,我希望会话到期,
任何人都可以告诉我什么是wordpress中的默认会话到期时间?以及如何更改默认过期时间.
好了,阅读Woocommerce 3.0+的变化,似乎你不能再直接访问这个类了,所以我认为这个代码需要改变,因为它正在吐出一个错误:
$order_item_id = 15;
$order_item = new WC_Order_Item_Product($order_item_id);
$return = $order_item->get_id() ? $order_item : false;
Run Code Online (Sandbox Code Playgroud)
但是,令人尴尬的是,我不确定如何更改此代码以在此类的最新版本中使用正确的新getter和setter函数,该类不再具有构造.怎么做得好?我没有看到任何get关于获得订单项的功能与上述相同.
https://docs.woocommerce.com/wc-apidocs/class-WC_Order_Item_Product.html
也许我在这里忽视一些事情?
假设我有一个非规范化的表格,其中包含电影演员名称和他们所在的电影.
CREATE TABLE movies_actors (
movies_actors_id INT,
movie VARCHAR(255),
actor VARCHAR(255),
PRIMARY KEY (movies_actors_id)
);
Run Code Online (Sandbox Code Playgroud)
我这样做是SELECT actor, COUNT(1) FROM movies_actors GROUP BY actor为了找出这位演员有多少部电影.但我也想知道演员的电影比例是多少.
我想我能做到这一点:
SELECT
actor,
COUNT(1) AS total,
COUNT(1) / (SELECT COUNT(1) FROM movies_actors) * 100 AS avg
FROM movies_actors
GROUP BY actor;
Run Code Online (Sandbox Code Playgroud)
但这似乎......呃...很难过.
有任何想法吗?
我正在开始插件开发并遵循WordPress Codex站点上的教程.我现在卡住了 - 我有一个名为"wp_imlisteningto"的数据库,其中wp_插入了:
$table_name = $wpdb->prefix . "imlisteningto";
Run Code Online (Sandbox Code Playgroud)
当插件被激活时.
数据库本身有三列,在激活插件时设置:
$sql = "CREATE TABLE $table_name (
id mediumint(9) AUTO_INCREMENT,
album VARCHAR(50),
artist VARCHAR(50),
PRIMARY KEY (id)
);";
Run Code Online (Sandbox Code Playgroud)
我试图从PHP表单插入数据(通过创建一个新行)到这个数据库.
在WordPress管理员中,我创建了一个具有非常简单形式的新页面:
<form action="/wp-content/plugins/listeningto/formhtml.php" method="post">
Album: <input type="text" name="album" />
Artist: <input type="text" name="artist" />
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
你可以看到哪个电话formhtml.php,这是:
<?php
global $wpdb;
$wpdb->insert( $table_name, array( 'album' => $_POST['album'], 'artist' => $_POST['artist'] ), array( '$s', '$s' ) );
?>
Run Code Online (Sandbox Code Playgroud)
当我提交表单时,我得到一个Error 500.0在Worpdress上运行插件时IIS7.0,以及"Page Not Found"在另一个运行的Web服务器上运行时 …
我有一个wordpress网站,我从godaddy密封中得到一个错误.我在我的网站页脚的小部件部分中有验证图像的html.
当我重新加载页面并检查firebug时,我在控制台中收到此错误.
跨源请求已阻止:同源策略不允许在https://seal.godaddy.com/setSealAttr?sealID=ID#上读取远程资源 .这可以通过将资源移动到同一域或启用CORS来解决.
我试图查找有关这个问题的信息,这有点过头了.任何人都可以告诉我什么是抛出这个错误以及我如何解决这个问题?我只是想了解这个错误是如何发生的.这是某个地方与jquery的冲突问题,还是密封加载的方式或者加载时间?
任何帮助将不胜感激.
我正在尝试使用error_log()我正在构建的自定义Wordpress插件,但出于某种原因,我不能.
当我使用error_log()我的网站时,我只是休息,但我没有看到任何错误debug.log.
我在我的wp_config.php文件中设置调试如下:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Run Code Online (Sandbox Code Playgroud)
Stranegly,如果我error_log()在我的主题中使用,该网站不会破坏,但也没有任何输出debug.log.
我需要做什么才能error_log()在我的Wordpress插件和主题中使用?
我正在使用Wordpress 3.9.1.
我刚刚在我的主题functions.php文件中添加了以下过滤器:
function change_the_title() {
return 'My modified title';
}
add_filter('wp_title', 'change_the_title');
Run Code Online (Sandbox Code Playgroud)
在我的header.php:
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta id="viewport" name="viewport" content="width=device-width">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
<?php wp_head(); ?>
</head>
<body <?php body_class();?>>
Run Code Online (Sandbox Code Playgroud)
然后,我发现我的网页没有标题不改变!并且标题标签被注入wp_head函数中.
更多,如果我wp_title在标题中手动调用该函数,它确实返回预期值.
怎么了?我该如何解决这个问题?
另外:我的WordPress版本是4.4.