通过子主题functions.php向Wordpress插件添加选项自定义帖子类型

时间:2016-10-06 16:42:20

标签: javascript wordpress function custom-post-type

我正在为网站使用解码主题。它有一个核心自定义帖子类型,名为' portfolio'。

我需要为此CPT添加一个选项,以便它与常规帖子共享标记。

我在主题核心中找到了CPT注册的文件并添加了以下内容并且有效:

import sys, time, threading
from PyQt4 import QtCore, QtGui

class Worker(object):
    def __init__(self, callback):
        self._callback = callback
        self._thread = None

    def active(self):
        return self._thread is not None and self._thread.is_alive()

    def start(self):
        self._thread = threading.Thread(target=self.work, name='Worker')
        self._thread.start()

    def work(self):
        print('work: [%s]' % threading.current_thread().name)
        for x in range(5):
            time.sleep(1)
            self._callback(str(x))

class Window(QtGui.QPushButton):
    dataReceived = QtCore.pyqtSignal(str)

    def __init__(self):
        super(Window, self).__init__('Start')
        self.clicked.connect(self.start)
        self.dataReceived.connect(self.receive)
        self.worker = Worker(self.callback)

    def receive(self, data):
        print('received: %s [%s]' % (data, threading.current_thread().name))

    def callback(self, data):
        print('callback: %s [%s]' % (data, threading.current_thread().name))
        self.dataReceived.emit(data)

    def start(self):
        if self.worker.active():
            print('still active...')
        else:
            print('start: [%s]' % threading.current_thread().name)
            self.worker.start()

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.show()
    print('show: [%s]' % threading.current_thread().name)
    sys.exit(app.exec_())

然而,由于编辑核心文件是一个很大的不可,我想知道是否有办法通过我自己的函数文件这样做,所以它是未来证明?

1 个答案:

答案 0 :(得分:0)

编辑:很明显我误解了!

看起来register_taxonomy_for_object_type( 'post_tag', 'portfolio' ); 就是您追随的目标。

std::basic_fstream::open有这样说:

  

register_taxonomy_for_object_type()

     

将已注册的分类标准添加到已注册的帖子类型。

register_post_type

原始答案:

来自WP Codex

  

register_post_type()

     

创建 或修改 帖子类型。只应通过'init'操作调用 'init' 。如果在function igloobob_portfolio_cpt_mod() { register_post_type('portfolio', $args); } add_action('init', 'igloobob_portfolio_cpt_mod', 999); 之前调用它将无法工作,如果稍后调用,新创建或修改的帖子类型的方面将无法正常工作。

(addtl.empress mine)

在这种情况下,您可以创建一个函数

$args

其中register_post_type基本上与999解码主题的参数重复,除了您的修改。 ffffff优先级arg是确保在父主题已经注册了帖子类型后执行它。