标签: wordpress-plugin

Wordpress:从主题访问插件的功能

我正在尝试从我已经制作成Wordpress主题的插件中添加一些功能,但我没有什么快乐.文档并没有真正帮助我解决问题,所以也许这里的人可以提供帮助.

我在Wordpress中有一个插件,它被激活并正常工作.这个插件的类有一个名为generateHtml的函数,我想从Wordpress主题访问它.但无论我尝试什么,我似乎无法访问我的插件的代码.

可以向我总结一下我需要做些什么才能让主题从插件中访问代码和/或指出我在我的代码中出错了:

插入:

<?php
/** Usual comments here **/

if (!class_exists("ImageRotator")) {
  class ImageRotator {
    private $uploadPath = '';
    private $pluginPath = '';
    private $options;

    function __construct() {
      $this->uploadPath = dirname(__file__).'\\uploads\\';
      // add_shortcode('imagerotator', array(&$this, 'generateHtml'));
    }

    // Various functions for plugin

    function generateHtml() {
      echo '<p>Hello World</p>';
    }
  }
}

/**
 * Create instance of image rotator
 */
$imageRotator = new ImageRotator();

/**
 * Create actions & filters for Wordpress
 */
if (isset($imageRotator)) {
  // Actions
  add_action('admin_menu', array(&$imageRotator, 'createMenu')); …
Run Code Online (Sandbox Code Playgroud)

wordpress plugins themes wordpress-plugin

8
推荐指数
1
解决办法
1万
查看次数

插件激活后重定向

我试过,如何在激活我的插件后将用户重定向到我的插件设置页面

register_activation_hook(__FILE__,'activate_myplugin');
function activate_myplugin()
{
//create and populate DB tables
wp_redirect(plugin_setting_url);
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

wordpress wordpress-plugin

8
推荐指数
3
解决办法
3498
查看次数

从页面编辑屏幕管理小部件

我正在寻找一种方法将小部件控制区域集成到页面编辑屏幕中.对于我正在制作的网站,它具有相同的拖放功能.

我想要一个可以拖放到页面小部件区域的可用小部件列表.然后,小部件将仅显示在该特定页面上.

我查看了wp-admin/widgets.php文件,并尝试使用那里的一些代码.我甚至尝试在post.php的末尾包含widgets.php(这基本上就是我想要的,但当然给了我有趣的结果).请不要建议像Widget Context或Widget Logic这样的插件.如果我不能这样做,那些是我的后备:)

所以我想了解如何实现这一点的想法和/或输入.我想在functions.php文件或插件中这样做.

编辑:我仍然对此感兴趣.只是关于如何做到这一点的理论描述会很棒:)

wordpress wordpress-plugin

8
推荐指数
1
解决办法
597
查看次数

为什么在Wordpress插件的类中使用$ this会导致致命错误?

我正在编写一个Wordpress插件,它在管理区域中创建一个页面,以及执行一些前端代码.

下面的代码抛出了一个很好的Fatal error: Using $this when not in object context错误.这是相当神秘的,因为变量在类中被调用.

也许我没有遵循功能和类的预期Wordpress插件结构,但下面的概念代码是使用Wordpress Codex中插件开发的相关条目创建的.

有人可以解释为什么会触发错误,因为当我在Wordpress代码库之外创建一个类的实例时,一切都很好.

if (!class_exists("MyClass")) {
  class MyClass {
    var $test = 'Test variable';

    public function index() {
      //Index code
    }

    public function add() {
      echo $this->test;
    }
  }
}

add_action('admin_menu', 'my_plugin_menu');

function my_plugin_menu() {
  add_menu_page('My Plugin', 'My Plugin', 'manage_options', 'my-plugin', array('MyClass', 'index'));
  add_submenu_page('my-plugin', 'Add New Thing', 'Add New', 'manage_options', 'my-plugin-add', array('MyClass', 'add'));
}
Run Code Online (Sandbox Code Playgroud)

php wordpress class wordpress-plugin

8
推荐指数
2
解决办法
9942
查看次数

删除Yoast SEO插件添加的rel规范

快速谷歌后无法找到解决方案所以我想在这里弹出快速帖子.

试图删除自动添加的rel = canonical链接(由Wordpress SEO插件添加 - 由Yoast添加).

我实际上希望谷歌抓取每个不同的潜艇,即使它可能不会离开父页面.

wordpress wordpress-plugin

8
推荐指数
2
解决办法
1万
查看次数

wordpress无法使具有查询的脚本/样式出列

不确定我是否正确措辞但基本上我想在仅使用实际插件的页面上加载插件CSS/JS ..我已经通过插件文件中wp_enqueue_script的插件中使用的任何句柄搜索完成了很多操作.只是wp_dequeue_script在functions.php中

但是,有一些样式的队列包括.php而不是css文件,例如..在插件中它将队列文件排队

wp_enqueue_style("myrp-stuff", MYRP_PLUGIN_URL . "/myrp-hotlink-css.php");
Run Code Online (Sandbox Code Playgroud)

所以我试过了:

wp_dequeue_style('myrp-stuff');
wp_deregister_style('myrp-stuff');
Run Code Online (Sandbox Code Playgroud)

它不起作用

但是,当页面/帖子呈现时,它显示为

<link rel='stylesheet' id='myrp-stuff-css'  href='http://www.modernlogic.co/wp/wp-content/plugins/MyRP/myrp-hotlink-css.php?ver=3.4.2' type='text/css' media='all' />
Run Code Online (Sandbox Code Playgroud)

它将-css添加到id并拒绝出列/取消注册并移动.

我也试过以下没有运气

wp_dequeue_style('myrp-stuff-css');
wp_deregister_style('myrp-stuff-css');
Run Code Online (Sandbox Code Playgroud)

有什么建议?

wordpress wordpress-plugin

8
推荐指数
2
解决办法
6367
查看次数

如何过滤用户列表中的views_edit?

以下是仪表板中用户列表表的屏幕截图.我想自定义突出显示的部分:

在此输入图像描述

我知道如何在帖子列表中使用此WordPress答案中解释的方法.

我试图使用过滤器views_edit-user但没有发生任何事情.我也试过谷歌它,但似乎这个过滤器没有文档或不是一个真正的WordPress过滤器.

如何使用add_action或自定义该管理部分add_filter

wordpress wordpress-plugin

8
推荐指数
1
解决办法
4164
查看次数

如何在开发wordpress插件时调试php代码?

我开始自己开发几个WordPress插件.在开发插件时,我在插件中使用了不同的钩子(wp_head,add_shortcode等)函数.任何人都可以建议我一个简单方便的方法来调试WordPress插件或有任何其他方式来轻松开发WordPress插件.提前致谢.

php debugging wordpress wordpress-plugin

8
推荐指数
1
解决办法
1万
查看次数

如何使用wordpress上的自定义字段为前端用户创建编辑个人资料页面?

如何使用wordpress上的自定义字段为前端用户创建编辑个人资料页面?我尝试使用配置文件构建器插件,但无法插入自定义字段,如性别广播框等.

php wordpress wordpress-plugin

8
推荐指数
2
解决办法
3万
查看次数

在Wordpress中更新本地化脚本的数据参数

我正在研究儿童主题,my-page-template.php我有:

$id_curr= 5; //calculated value through code
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id_curr)); 
Run Code Online (Sandbox Code Playgroud)

my_js.js我有一个AJAX调用:

$.ajax({
   //...
   type: 'post',
   data: {
      action: 'ajax_load',
      post_id: ajaxload.post_id
   }
})
Run Code Online (Sandbox Code Playgroud)

现在functions.php,我想ajaxload.post_id根据新结果编辑/更新.有没有办法做到这一点?如果我尝试wp_localize_script()使用$name下面显示的相同方式重新呼叫,这会有效吗?

$id_new= 8; //new calculated value
wp_localize_script('my_js', 'ajaxload', array('post_id' => $id_new));  
Run Code Online (Sandbox Code Playgroud)

php ajax wordpress wordpress-theming wordpress-plugin

8
推荐指数
1
解决办法
1083
查看次数