Hi,
I am not sure where you are trying to get to the value (in the
publishing function?), but I use something like the following to handle
custom keywords:
,----
| #+MWP_EXPORT_TYPE: slides
|
| #+name: elt
| #+begin_src emacs-lisp :results silent :exports none
| (let ((tree (org-element-parse-buffer)))
| (org-element-map
| tree 'keyword
| (lambda (r)
| (let ((key (org-element-property :key r))
| (value (org-element-property :value r)))
| (when (string= key "MWP_EXPORT_TYPE")
| value))) ;; Return the keyword value
| nil t))
| #+end_src
`----
If you have access to the parsed tree or the buffer filename, you may be
able to use this or something similar (maybe wrapped in a function).
Hope it helps.
I think this is a pretty good option -- I would use this in an interactive function that is called from the org buffer, so I should be able to parse it. I keep all my lectures in a single file, and same for all my other course materials, so I guess I will have to do some testing and see how long the parse operation takes...